это мое первое развертывание веб-приложения, и я сталкиваюсь с различными проблемами.
В настоящее время я собираюсь реализовать nginx + gunicorn для приложения Django, но в основном этот вопрос касается конфигураций nginx. Для некоторого контекста - nginx получит соединения и прокси к локальному серверу gunicorn.
в конфигурациях nginx, где говорится, server_name
что я должен предоставить один? Я не планирую использовать доменные имена любого типа, просто через внешний ip моей сети (он статический) и номер порта для прослушивания.
Мое желание состоит в том, чтобы, когда я получаю доступ к чему-то подобному, http://xxx.xxx.xxx.xxx:9050
я мог получить сайт
Ниже приведен пример кода, на котором я буду основывать конфигурации для справки.
server {
listen 80;
server_name WHAT TO PUT HERE?;
root /path/to/test/hello;
location /media/ {
# if asset versioning is used
if ($query_string) {
expires max;
}
}
location /admin/media/ {
# this changes depending on your python version
root /path/to/test/lib/python2.6/site-packages/django/contrib;
}
location / {
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_connect_timeout 10;
proxy_read_timeout 10;
proxy_pass http://localhost:8000/;
}
# what to serve if upstream is not available or crashes
error_page 500 502 503 504 /media/50x.html;
}
имя сервера _; не подстановочный знак, смотрите здесь:
http://blog.gahooa.com/2013/08/21/nginx-how-to-specify-a-default-server
просто укажите директиву default_server для доступа только по ip (см. http://nginx.org/en/docs/http/request_processing.html )
источник
server_name _;
это несоответствие.Если вы хотите, чтобы ваше приложение отвечало на порт 9050 без определенного имени хоста, вы можете просто пропустить server_name, это не требуется, так как Nginx сначала разрешает запись прослушивания, а затем server_name, если присутствует:
Подробнее здесь: Nginx имя_сервера и как это работает
источник