我有多个本地网站,我想配置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:80
和http://site2:7777
访问它们。但我必须始终访问端口号。我想通过http://site1
和http://site2
访问它们。
有解决办法吗?
答案 0 :(得分:2)
你已经明白了,但让我解释一下为什么它有效。
第一个网站site1
应该运行得很好,因为默认的http
端口是80,这就是site1
正在收听的内容,因此http://site1.com
会有效很好。
site2
的第二个配置文件正在侦听端口7777
,因此执行正常的http://site2.com
将无法正常工作,实际上它可能会选择您的默认网站并提供相应的服务,因为nginx没有尝试将server_name
与配置中的匹配,因为端口不匹配。
您应该在端口80上创建所有网站,nginx将通过它自己进行匹配并知道哪个站点要服务器,除非它是https
网站,然后您使用端口443
代替,这是默认的ssl端口