Проблемы с настройкой кеширования для сервера PyPi через NGINX / UWSGI - PullRequest
0 голосов
/ 10 июля 2020

Я пытаюсь настроить кеширование сервера PyPi через NGINX / uWSGI и терпит неудачу.

Моя /sites-available/pypi конфигурация выглядит следующим образом:

uwsgi_cache_path /mnt/pypi/nginx-cache
                 levels=1:2
                 keys_zone=pypiserver_cache:10m
                 max_size=10g
                 inactive=60m
                 use_temp_path=off;

server {
    listen 80 default_server;
    listen 443 default_server ssl;
    ssl_certificate     /etc/ssl/certs/domain.pem;
    ssl_certificate_key /etc/ssl/private/domain.key;

    client_max_body_size 5M;

    location / {
        uwsgi_cache pypiserver_cache;
        uwsgi_buffering on;
        uwsgi_cache_key $request_uri;
        add_header X-uWSGI-Cache $upstream_cache_status;
        include uwsgi_params;
        uwsgi_pass unix:/run/uwsgi/internal_pypi.socket;
    }
}

NGINX запускается и не сообщает об ошибках, но запрос одного и того же пакета несколько раз не кэширует его (доказано путем свертывания URL-адреса и наблюдения за заголовком X-uWSGI-Cache: MISS), и в /mnt/pypi/nginx-cache ничего не сохраняется.

Сообщите мне, если Я могу предоставить дополнительную полезную информацию, спасибо!

Ссылки:

1 Ответ

0 голосов
/ 10 июля 2020

Это решено, в моем случае файл python сервера pypi нуждался в некоторых изменениях.

application = pypiserver.app(
    root="/mnt/pypi/directory",
    redirect_to_fallback=False,
    password_file="path/to/file",
    cache_control=3600 #this needed to be added
)
...