![Nginx Vhost 显示默认索引页,而不是定义的索引页](https://linux22.com/image/705123/Nginx%20Vhost%20%E6%98%BE%E7%A4%BA%E9%BB%98%E8%AE%A4%E7%B4%A2%E5%BC%95%E9%A1%B5%EF%BC%8C%E8%80%8C%E4%B8%8D%E6%98%AF%E5%AE%9A%E4%B9%89%E7%9A%84%E7%B4%A2%E5%BC%95%E9%A1%B5.png)
我最近在 debian 8.8 服务器上安装了 nginx。我已经注册了一个域名,现在我想创建一个虚拟主机来为其提供服务。(将来我可能会为其他域名添加更多虚拟主机。)
问题是,每次我进入时http://[my domain]
都会得到默认的 nginx 欢迎页面,而不是我在下面创建的页面/var/www/[my domain]/public_html
。
下面我发布了我输入的创建新虚拟主机的命令:
sudo mkdir -p /var/www/[my domain]/public_html
sudo chown -R www-data:www-data /var/www/[my domain]/public_html
sudo chmod -R 755 /var/www
sudo nano /var/www/[my domain]/public_html/index.html
sudo nano /etc/nginx/sites-available/[my domain]
sudo ln -s /etc/nginx/sites-available/[my domain] /etc/nginx/sites-enabled/[my domain]
sudo rm /etc/nginx/sites-enabled/default
sudo service nginx restart
在 vhost 文件中我添加了下面几行:
server {
listen 80;
listen [::]:80;
server_name [my domain] www.[my domain];
}
server {
listen 80;
default_type text/plain;
root /var/www/[my domain]/public_html;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
我检查了配置,sudo nginx -t
没有报告错误。
我运行 ufw 防火墙并采用以下配置(以防有人需要):
ssh ALLOW Anywhere
Nginx HTTP ALLOW Anywhere
shhh ALLOW Anywhere (v6)
Nginx HTTP (v6) ALLOW Anywhere (v6)
答案1
问题是您指定域名的虚拟主机没有其他内容。
您需要删除第一个server
块并将server_name
指令移至第二个块。