nginx显示vhost而不是默认root

时间:2018-05-18 17:16:37

标签: nginx configuration

我刚在我的开发机器上安装了ngninx。

  • 它自动从lighttpd迁移我的虚拟主机(非常舒服!),我只需要调整顶级域名(只需\.dev,我将其更改为\.(dev|test|local)
  • 并将自己绑定到81号港口;删除lighttpd后,我将/etc/nginx/sites-available中的端口更改为80。

但是当我在浏览器中调用http://<ip-adress>/时,我得到了我的一个虚拟主机的索引页而不是默认的DOCUMENT_ROOT(/var/www/)。

我触摸/etc/nginx/sites-available/default,更改了端口号并取消注释了PHP块。 当前内容(评论摘录):

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    root /var/www;
    index.php index index.html index.htm index.nginx-debian.html;
    server_name _;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }
}

一半的虚拟主机在/etc/nginx/sites-enabled中有自我引用,我用符号链接替换为/etc/nginx/sites-available并添加了default的符号链接;现在可以访问我的所有虚拟主机,但是调用IP地址仍然会路由到同一个虚拟主机,而不是/var/www
该vhost文件既不是按字母顺序排列也不是考虑mtime,但是当我列出未排序的目录(ls -f)时,它甚至出现在..之前。

如何让nginx提供/var/www/代替/var/www/vhost/

更新:点击我的主虚拟主机后,切换到https并返回,它改变了: http://www.vhost1.test现在路由到/var/www,但其他虚拟主机似乎正常工作。

更新:我尝试通过取消注释server中的nginx.conv块(指向/var/www)并将sites-enabled/default关联到sites-available/vhost1来解决问题。后者导致ip-address和vhost1被路由到另一个vhost。其他vhosts仍然正常工作。

1 个答案:

答案 0 :(得分:0)

我明白了:
sites-available/vhost1只有listen 443 ssl;; listen 80;失踪了 (因为listen 80 default_server导致&#34;重复的默认服务器&#34;错误),
所以通过端口80调用域回落到默认服务器。