nginx的子域vHost

nginx的子域vHost,nginx,vhosts,Nginx,Vhosts,我正在尝试为nginx创建子域vhost,以便用户可以访问该域的另一个文件夹:sub.mydomain.com 为了实现这一点,我已经尝试了两件事:我查看了文件夹/etc/nginx/sites enabled,编辑了现有的工作vHost,它将mydomain.com重定向到正确的文件夹中。基本上,短版本如下所示: server { listen 80 default_server; listen [::]:80 default_server ipv6only=on;

我正在尝试为nginx创建子域vhost,以便用户可以访问该域的另一个文件夹:sub.mydomain.com

为了实现这一点,我已经尝试了两件事:我查看了文件夹/etc/nginx/sites enabled,编辑了现有的工作vHost,它将mydomain.com重定向到正确的文件夹中。基本上,短版本如下所示:

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    root /var/www/mydomain.com/public_html/;
    index index.php index.html index.htm;

    # Make site accessible from http://localhost/
    server_name mydomain.com;
}

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    root /var/www/clashbot.org/public_html/sub;
    index index.php index.html index.htm;

    # Make site accessible from http://localhost/
    server_name sub.mydomain.com;
}

然后,我尝试使用
sudo服务nginx restart
重新启动nginx,但只有在实际定义了两个服务器/vhost时才会失败。我在两个不同的vhosts文件中尝试了同样的方法,结果是相同的行为。为什么会失败?

每个IP:端口必须只有一个
默认\u服务器。从第二台服务器中的
listen
指令中删除
default\u server
,fyi,
sudo nginx-t
将为您提供更多信息感谢您对我的帮助,它现在可以工作了!