我目前有一个运行在foo.domain.com的Nginx的虚拟主机,一切都很好。
我为我想添加的一个新的子域创build了一个名为bar.domain.com的新文件。 我使用相同的设置。
当我重新启动Nginx,我得到
Restarting nginx: nginx: [warn] conflicting server name "" on 0.0.0.0:443, ignored nginx.
当我去bar.domain.com我看到我应该看到,但是当我去foo.domain.com我看到bar.domain.com链接到的页面。
富
upstream php-handler { server unix:/var/run/php5-fpm.sock; } server { listen 80; server_name foo.domain.com; return 301 https://$server_name$request_uri; } server { listen 443; ssl on; ssl_certificate [path_foo]/cacert.pem; ssl_certificate_key [path_foo]/privkey.pem; root [path]/foo; ... }
酒吧
server { listen 80; server_name bar.domain.com; return 301 https://$server_name$request_uri; } server { listen 443; ssl on; ssl_certificate [path_bar]/cacert.pem; ssl_certificate_key [path_bar]/privkey.pem; root [path]/bar; }
我哪里错了?
看起来像你的https块需要指定的服务器名称,例如
server { listen 443; server_name bar.domain.com; ssl on; ssl_certificate [path_bar]/cacert.pem; ssl_certificate_key [path_bar]/privkey.pem; root [path]/bar; }
/etc/nginx/sites-enabled/<site-name>可能还有其他文件,它们链接到/etc/nginx/sites-enabled/<site-name> 。
这些文件中的设置可能会与/etc/nginx/sites-available/default文件冲突
我有一个类似的问题,当我不小心有重复的服务器名称:
server_name myserver.example.com myserver.example.com;
修改为:
server_name myserver.example.com;