Вопрос:
Я пытаюсь развернуть проект 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 (если вы хотите придерживаться своего текущего кода)