我有多个本地站点,并且我想将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访问它们.
有解决方案吗?
最佳答案
您已经弄清楚了,但是让我解释一下它为什么起作用的原因.
第一个站点site1应该可以正常工作,因为默认的http端口是80,而这正是site1在监听的内容,因此http://site1.com可以正常工作.
site2的第二个配置文件正在侦听端口7777,因此无法正常运行http://site2.com,实际上,它可能会选择您的默认网站并提供服务,因为nginx并未尝试匹配server_name在配置中带有一个,因为端口不匹配.
您应该在端口80上创建所有网站,nginx会自行进行匹配并知道要服务器哪个站点,除非它是https网站,否则您将使用端口443,这是默认的ssl端口
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。