我刚在我的开发机器上安装了ngninx。
\.dev
,我将其更改为\.(dev|test|local)
。/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仍然正常工作。
答案 0 :(得分:0)
我明白了:
sites-available/vhost1
只有listen 443 ssl;
; listen 80;
失踪了
(因为listen 80 default_server
导致&#34;重复的默认服务器&#34;错误),
所以通过端口80调用域回落到默认服务器。