NGINX server_name不起作用2

时间:2017-09-07 14:33:20

标签: express nginx

我的网站始终在路径localhost中打开,但我的server_name还有其他domen名称。我怎么解决它? 我的配置

https://i.stack.imgur.com/MXm5k.jpg

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {

    server {
        listen 80;
        server_name  mydomain;

        #charset koi8-r;

        access_log  logs/host.access.log;

        location / {
            proxy_pass http://127.0.0.1:3037;
        }

    }

}

4 个答案:

答案 0 :(得分:1)

将配置更改为以下

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {

    server {
        listen 80 default_server;
        return 403;
    }

    server {
        listen 80;
        server_name  mydomain;

        #charset koi8-r;

        access_log  logs/host.access.log;

        location / {
            proxy_pass http://127.0.0.1:3037;
        }

    }

}

第一个服务器块是默认服务器,如果没有虚拟主机匹配,nginx将提供请求。所以你需要有2个区块,以防你只想让特定的server_name被允许并且全部被拒绝

答案 1 :(得分:0)

为了测试并接受“全能”#34;您可以使用server_name _

来自:http://nginx.org/en/docs/http/server_names.html

  

在catch-all服务器示例中,可以看到奇怪的名称“_”:

server {
    listen       80  default_server;
    server_name  _;
    return       444; 
}

答案 2 :(得分:0)

如果您使用的是Ubuntu,还必须在/etc/hosts中为本地ip定义服务器名称: 127.0.0.1 mydomain www.mydomain.com mydomain.com

答案 3 :(得分:0)

您必须将自定义域名与您机器的本地 IP 地址匹配。 这可以使用默认的 127.0.0.1 或通过在 Ubuntu 终端中键入命令“ip addr”来完成。此命令将列出您的机器提供的两个 IP 地址。 您可以将任何 IP 地址与“/etc/hosts”文件中的自定义域进行匹配。