子域名在 nginx 上不起作用

子域名在 nginx 上不起作用

我决定尝试一下 nginx,但似乎我被困在了真正的开始阶段。我有一台运行 Debian 的服务器,我正在尝试使用 1 个域 + 2 个子域配置 nginx。当我访问主域时,它显示了它应该显示的内容。当我访问第一个子域时,它访问正确的文件夹,但当我访问第二个子域时,它反而显示主域。以下是我迄今为止修改的内容:

sites-available(主域)工作正常

server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/domain.com/public_html/;
index index.php index.html index.htm index.nginx-debian.html;
server_name www.domain.com domain.com;
location / {
    try_files $uri $uri/ =404;
}
}

sites-available(第一个子域名)工作正常

server{
listen 80;
listen [::]:80;
root /var/www/sub1.domain.com;
index index.php index.html index.htm index.nginx-debian.html;
server_name sub1.domain.com;
location / {
    try_files $uri $uri/ =404;
}
}

可用站点 (第二个子域名)重定向至主域名

server{
listen 80;
listen [::]:80;
root /var/www/sub2.domain.com;
index index.php index.html index.htm index.nginx-debian.html;
server_name sub2.domain.com;
location / {
try_files $uri $uri/ =404;
}
}

我创建了此文件到 sites-enabled 的符号链接,并将它们添加到 /etc/hosts

Server IP            www.domain.com               domain.com
Server IP            sub1.domain.com
Server IP            sub2.domain.com

该域和两个子域均有指向服务器 IP 的 A 记录。我多次重启了 nginx 和服务器,清除了所有浏览器上的 cookie 和缓存,还尝试过从不同的 PC 上进行操作……我看不出第二个子域的配置有什么问题。

任何帮助将不胜感激!!

预计起飞时间:这里有一些日志:

错误日志

2015/11/17 22:41:16 [notice] 10184#0: signal process started
2015/11/17 22:56:46 [notice] 10891#0: signal process started
2015/11/17 23:06:37 [notice] 11332#0: signal process started

它基本上充满了那些。

访问日志

94.23.253.89 - - [17/Nov/2015:23:13:24 +0100] "GET / HTTP/1.1" 200 18 "-" "curl/7.38.0"
94.23.253.89 - - [17/Nov/2015:23:14:30 +0100] "GET / HTTP/1.1" 200 18 "-" "lwp-request/6.03 libwww-perl/6.08"
94.23.253.89 - - [17/Nov/2015:23:14:48 +0100] "GET / HTTP/1.1" 200 18 "-" "lwp-request/6.03 libwww-perl/6.08"
94.23.253.89 - - [17/Nov/2015:23:15:35 +0100] "GET / HTTP/1.1" 200 18 "-" "lwp-request/6.03 libwww-perl/6.08"
94.23.253.89 - - [17/Nov/2015:23:15:52 +0100] "GET / HTTP/1.1" 200 18 "-" "lwp-request/6.03 libwww-perl/6.08"
94.23.253.89 - - [17/Nov/2015:23:15:58 +0100] "GET / HTTP/1.1" 200 18 "-" "lwp-request/6.03 libwww-perl/6.08"
94.23.253.89 - - [17/Nov/2015:23:16:05 +0100] "GET / HTTP/1.1" 200 18 "-" "lwp-request/6.03 libwww-perl/6.08"

答案1

server {
        set $docroot "/var/www/domain.com/public_html/";
        listen 80 default_server;
        server_name www.domain.com domain.com;
        root $docroot;
        try_files $uri $uri/ /index.php?$args;
        index index.php index.html index.htm;
}

server {
        set $docroot "/var/www/sub1.domain.com/public_html/";
        listen 80;
        server_name www.sub1.domain.com sub1.domain.com;
        root $docroot;
        try_files $uri $uri/ /index.php?$args;
        index index.php index.html index.htm;
}

server {
        set $docroot "/var/www/sub2.domain.com/public_html/";
        listen 80;
        server_name www.sub2.domain.com sub2.domain.com;
        root $docroot;
        try_files $uri $uri/ /index.php?$args;
        index index.php index.html index.htm;
}

确保在启用的站点中,它们是指向 sites-available 目录的 sim-link。您可以将上述内容放入一个文件中,也可以将每个内容放入 sites-available 目录中的单独文件中。

要使用 nginx 测试您的配置,使用nginx -t它将显示您的配置是否正确,而不会影响服务器。

相关内容