在nginx中更改localhost主机名

时间:2013-12-14 19:51:49

标签: nginx

我有多个本地网站,我想配置nginx以拥有每个网站的不同主机。

在/ var / www我有2个站点:site1和site2

然后在/ etc / nginx / sites-available /我为每个创建了2个不同的配置服务器。我有文件site1和site2,其内容如下:

server {
        listen 80;

        root /var/www/site1;
        index index.html index.htm;

        server_name localhost;

        location / {
                try_files $uri $uri/ /index.html;
        }
}

server {
            listen 7777;

            root /var/www/site2;
            index index.html index.htm;

            server_name localhost;

            location / {
                    try_files $uri $uri/ /index.html;
            }
    }

我通过站点1的http://localhost:80和站点2的http://localhost:7777访问它们。这非常有效。我也可以在/ etc / hosts中添加主机名,如下所示:

127.0.0.1 localhost site1 site2

我可以使用http://site1:80http://site2:7777访问它们。但我必须始终访问端口号。我想通过http://site1http://site2访问它们。

有解决办法吗?

1 个答案:

答案 0 :(得分:2)

你已经明白了,但让我解释一下为什么它有效。

第一个网站site1应该运行得很好,因为默认的http端口是80,这就是site1正在收听的内容,因此http://site1.com会有效很好。

site2的第二个配置文件正在侦听端口7777,因此执行正常的http://site2.com将无法正常工作,实际上它可能会选择您的默认网站并提供相应的服务,因为nginx没有尝试将server_name与配置中的匹配,因为端口不匹配。

您应该在端口80上创建所有网站,nginx将通过它自己进行匹配并知道哪个站点要服务器,除非它是https网站,然后您使用端口443代替,这是默认的ssl端口