Nginx 无法匹配具有双Ip地址的服务器

Nginx 无法匹配具有双Ip地址的服务器,nginx,Nginx,我有一个有两个ip的服务器:当我使用nginx作为jboss7的反向代理时 为了防止直接访问,请使用ip地址(我们已配置dns), 我使用以下配置: # You may add here yourdefault_server; # server { # server { listen *:80; server_name _; return 404; } server { listen 80; listen [::]:80 default_server

我有一个有两个ip的服务器:当我使用nginx作为jboss7的反向代理时 为了防止直接访问,请使用ip地址(我们已配置dns), 我使用以下配置:

# You may add here yourdefault_server;
# server {
#
server {
    listen *:80;
    server_name _;
    return 404;
}

server {

    listen  80;
    listen [::]:80 default_server ipv6only=on;

root /usr/share/nginx/html;
index index.html index.htm;

server_name www.shikuaigou.com localhost;
charset utf-8;

location / {
    proxy_set_header   X-Real-IP $remote_addr;
            proxy_set_header   X-Forwarded-For  $http_x_forwarded_for;  
            proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;   
    proxy_set_header   Host $host;
            proxy_set_header   X-Forwarded-Host $host;
    proxy_set_header   X-Forwarded-Server $host;
    proxy_pass http://jboss;
}

location /doc/ {
    alias /usr/share/doc/;
    autoindex on;
    allow 127.0.0.1;
    allow ::1;
    deny all;
}
}
server {
listen 80;
    server_name example.com;
    rewrite "^/(.*)$" http://www.example.com/$1 permanent;
}

server {

    listen 12.34.56.78;

    server_name www.example.com;

    root /usr/share/nginx/html;

    index index.html index.htm;

    location / {
            proxy_set_header   X-Forwarded-For  $http_x_forwarded_for;
            proxy_set_header   Host $host;
            proxy_set_header   X-Forwarded-Host $host;
            proxy_set_header   X-Forwarded-Server $host;
            proxy_pass http://jboss;
            # First attempt to serve request as file, then
            # as directory, then fall back to displaying a 404.
            # try_files $uri $uri/ /index.html;
            # Uncomment to enable naxsi on this location
            # include /etc/nginx/naxsi.rules
    }
}
但只有在ip上才能匹配返回404的服务器,另一个不能匹配返回404的服务器

配置服务器\u名称\u


这是什么原因造成的?

因为你有
听12.34.56.78
因此nginx选择此服务器来处理
12.34.56.78
上的请求,因为它对该IP更为具体

请注意,
server\u name
实际上意味着什么,除了一个不正确的域名

参考: