nginx没有server_name并且仅使用静态IP地址?


34

这是我的第一个Web应用程序部署,并且遇到了各种各样的问题。

我目前正在为Django应用程序执行nginx + gunicorn实现,但是大多数情况下,这个问题与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;
     }

Answers:



5

服务器名称 _; 不是通配符,请参见此处:

http://blog.gahooa.com/2013/08/21/nginx-how-to-specify-a-default-server

只需为仅IP访问指定default_server指令即可(请参阅http://nginx.org/en/docs/http/request_processing.html

server {
    listen 1.2.3.4:80 default_server;
    ... 
    }

2
不建议仅链接到有用的信息,而不要将其包含在您的答案中-在这种情况下,这server_name _;是不匹配的。
BE77Y

1
“不是通配符” ==“是不匹配项”。我相信他们会得到的。

2
两者不相等。不匹配是指没有其他条件匹配而通配符匹配所有内容时提供的服务。然而,这里的关键是,有用的信息应该是答案,在其他一些网站没有链接(但是也提出了在该网站上),详见这里
BE77Y

关键是这不是一个“好答案”,而是一个答案。对不起,没有时间。如果您想对其进行编辑/重写,我完全同意。否则,他们将确切地知道该怎么做,这是有帮助的。随时重写它,否则答案不变。

3
如果您“没有时间”在相关信息中加入额外的一行,老实说,我不知道您为什么不愿意以一个被接受的答案来回答一个3岁的帖子!
BE77Y 2015年

4

如果您希望您的应用在端口9050上响应而没有特定的主机名,那么您可以跳过server_name,这不是必需的,因为Nginx首先解析监听条目,然后解析server_name(如果存在):

server {
   listen 9050;

   .....
}

此处有更多详细信息:Nginx server_name及其工作方式

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.