Django nginx: [emerg] open() «/etc/nginx/proxy_params» не удалось (2: Нет такого файла или каталога) в /etc/nginx/sites -enabled/myproject: 11

Вопрос:Я пытаюсь развернуть проект django с Nginx и Gunicorn с этот учебник. я сделал все до-dos, но, когда я создаю файл /etc/nginx/sites-available/myproject с кодом ниже: server { listen 80; server_name server_domain_or_IP; location = /favicon.ico { access_log off; log_not_found off; } location /static/ { root /home/sammy/myproject; } location / { include proxy_params; proxy_pass http://unix:/home/sammy/myproject/myproject.sock; } }

Вопрос:

Я пытаюсь развернуть проект django с Nginx и Gunicorn с этот учебник. я сделал все до-dos, но, когда я создаю файл /etc/nginx/sites-available/myproject с кодом ниже:

server { listen 80; server_name server_domain_or_IP; location = /favicon.ico { access_log off; log_not_found off; } location /static/ { root /home/sammy/myproject; } location / { include proxy_params; proxy_pass http://unix:/home/sammy/myproject/myproject.sock; } }

а затем запустите sudo nginx -t для поиска ошибок, я получаю эту ошибку:

nginx: [emerg] open() «/etc/nginx/proxy_params» failed (2: No such file or directory) in /etc/nginx/sites-enabled/myproject:11 nginx: configuration file /etc/nginx/nginx.conf test failed

какая проблема?
и как его решить?
Tanx

Лучший ответ:

У вас неправильный путь для proxy_params 99% времени (по моему опыту), местоположение по умолчанию для файла proxy_params /etc/nginx/proxy_params, но для вас это не похоже..

Файл proxy_params содержит следующее:

proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme;

которые используются для пересылки информации в приложение, к которому вы подключаетесь, я работал на старом сервере Centos, у которого не было файла proxy_params. Вместо того, чтобы создавать его самостоятельно, я просто включил эти параметры напрямую, поэтому мой блок расположения выглядел следующим образом

location / { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://unix:/home/sammy/myproject/myproject.sock; }

Итак, это зависит от вас. Если файл существует в другом месте, просто включите его в нужное место:

include /path/to/proxy_params

else вы можете включить параметры непосредственно в блок местоположения (как я сделал выше)

Или создайте его самостоятельно и поместите его в /etc/nginx (если вы хотите придерживаться своего текущего кода)

Оцените статью
Добавить комментарий