如何配置nginx.conf实现不同子域名返回不同网页?尝试location块未生效
Nginx子域名配置方案(abc.xyz.com & abcd.xyz.com)
你之前改location块没用是找错地方了——Nginx区分不同域名要靠独立的server块,不是在同一个server里改location。按下面步骤来:
1. 先确认DNS解析
确保两个子域名abc.xyz.com和abcd.xyz.com都已经解析到你的服务器公网IP,这是基础,不然Nginx根本收不到对应域名的请求。
2. 编写Nginx配置
打开你的Nginx主配置文件(通常在/etc/nginx/nginx.conf),或者在/etc/nginx/sites-available/下新建两个配置文件(推荐后者,更清晰),然后软链到sites-enabled/目录。
示例配置代码:
# 处理abc.xyz.com的server块 server { listen 80; server_name abc.xyz.com; # 指向abc子域名对应的网页根目录 root /var/www/abc; index index.html index.htm; # 常规location配置(可选,处理静态文件等) location / { try_files $uri $uri/ =404; } } # 处理abcd.xyz.com的server块 server { listen 80; server_name abcd.xyz.com; # 指向abcd子域名对应的网页根目录 root /var/www/abcd; index index.html index.htm; location / { try_files $uri $uri/ =404; } } # 可选:默认server块,处理其他未匹配的域名请求 server { listen 80 default_server; server_name _; return 404; }
3. 验证配置并重启Nginx
- 先检查配置语法是否正确:
nginx -t - 如果提示
test is successful,就重启Nginx生效:systemctl restart nginx # 或者用service命令(取决于系统) # service nginx restart
4. 常见问题排查
- 检查服务器防火墙是否开放了80(HTTP)和443(HTTPS,如果你用SSL的话)端口;
- 清除浏览器缓存后再访问,避免旧缓存导致的显示异常;
- 确认
/var/www/abc和/var/www/abcd目录的权限,Nginx进程(通常是www-data用户)要有读取权限:chown -R www-data:www-data /var/www/abc /var/www/abcd chmod -R 755 /var/www/abc /var/www/abcd
内容的提问来源于stack exchange,提问作者Joe Spark
相关产品推荐
相关产品推荐

