You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 19:25:27