我继承了一台 Web 服务器,并尝试设置子域。我们在同一台服务器上还有其他子域,它们运行良好,但当我将完全相同的信息放入配置文件中时,它不起作用。它所做的只是将我重定向到 www。
我抄袭的配置如下:
server {
server_name sub1.example.com;
root /mnt/webfiles/Web/sub1;
index index.html index.htm index.php;
access_log /var/log/nginx/sub1.access.log;
error_log /var/log/nginx/sub1.error.log;
include /etc/nginx/custom/common.conf;
include /etc/nginx/custom/vhost-php.conf;
}
效果很好。用户前往http://sub1.example.com他们可以看到 /mnt/webfiles/Web/sub1 中的所有文件。
我设置了一个新的子域名,用户立即被跳转到 www.example.com
server {
server_name sub2.example.com;
root /mnt/webfiles/Web/sub2;
index index.html index.htm index.php;
access_log /var/log/nginx/sub2.access.log;
error_log /var/log/nginx/sub2.error.log;
include /etc/nginx/custom/common.conf;
include /etc/nginx/custom/vhost-php.conf;
}
我真的不关心用户是否被重定向到 www.example.com/sub2 或者他们的浏览器是否仍然显示 sub2.domain.com。只要有效就行。
我在其他地方找到了这个,但是它不起作用(仍然将我跳转到 www):
server {
server_name sub2.example.com;
return 301 "http://example.com/sub2${uri}";
}
/sub2 文件夹存在,并且其中有一个 index.php 页面。我遗漏了什么?
谢谢,
杰夫
答案1
您很可能在/etc/sites-available
目录中创建了新配置文件,但没有创建指向/etc/sites-enabled
目录的符号链接。因此,nginx 不会加载该配置文件,而是使用默认虚拟主机进行重定向。