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

NGINX配置:实现带www与不带www域名跳转以运行Node.js

解决www.domain.com访问问题的两种配置方案

首先说明:Nginx中没有ServerAlias指令(这是Apache的配置项),对应多域名处理需求,Nginx有两种常用实现方式:

方案1:让www.domain.com与domain.com均指向后端服务

直接修改原server块的server_name字段,同时包含两个域名即可:

server {
    listen 80;
    listen [::]:80;
    server_name domain.com www.domain.com; # 同时指定主域名和www子域名
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    location / {
        proxy_pass "http://localhost:3000/";
    }
}

配置生效后,访问两个域名都会直接转发到localhost:3000的服务。

方案2:将www.domain.com永久重定向到domain.com(推荐)

如果希望统一访问入口、避免搜索引擎收录重复内容,建议用301永久重定向。保留原主域名配置,新增一个专门处理www域名的server块:

# 原主域名服务配置
server {
    listen 80;
    listen [::]:80;
    server_name domain.com;
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    location / {
        proxy_pass "http://localhost:3000/";
    }
}

# www域名重定向配置
server {
    listen 80;
    listen [::]:80;
    server_name www.domain.com;
    return 301 $scheme://domain.com$request_uri;
}

这种方式会将所有访问www.domain.com的请求,永久跳转到domain.com的对应路径,同时传递原请求的URI参数。

配置生效步骤

修改完成后,先执行配置语法检查:

nginx -t

确认输出test is successful后,重载Nginx使配置生效:

systemctl reload nginx
# 或使用service命令(取决于系统)
service nginx reload

内容的提问来源于stack exchange,提问作者eRevolute

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 20:35:29