开发者社区 问答 正文

nginx .tomcat 多项目。多个二级域名配置 - 配置报错

网站使用nginx 加tomcat,后端tomcat处理请求。 现在想配置多个二级域名,比如 主站是
www.test.com 新闻版块想配置成 news.test.com. 对应的项目是tomcat里面的 xinwen 。 论坛版块想配置成 forum.test.com, 对应tomcat下下面的luntan项目。 浏览器浏览的时候 news.test.com 地址栏不变,不要变成news.test.com/news 这样的。 请教如何配置? 感谢您的回答

展开
收起
montos 2020-05-30 22:54:25 813 分享 版权
阿里云 AI 助理回答

要在Nginx中配置多个二级域名,每个二级域名指向Tomcat中的不同项目,您需要按照以下步骤进行配置:

  1. 确保DNS设置:首先,确保您的DNS解析已正确设置,使得每个二级域名(news.test.com、forum.test.com)都能解析到您的服务器IP地址。

  2. 修改Nginx配置文件:编辑Nginx的配置文件,通常是/etc/nginx/nginx.conf/etc/nginx/sites-available/default,根据实际情况可能有所不同。在http或server块内添加新的server块来定义每个二级域名的处理规则。

下面是一个示例配置,展示了如何为两个二级域名分别配置不同的Tomcat上下文路径:

server {
    listen 80;
    server_name news.test.com;

    location / {
        proxy_pass http://localhost:8080/xinwen; # 假设Tomcat运行在8080端口,xinwen是项目名
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

server {
    listen 80;
    server_name forum.test.com;

    location / {
        proxy_pass http://localhost:8080/luntan; # 同上,luntan是另一个项目名
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

这段配置做了以下几件事: - listen 80; 指定监听80端口。 - server_name 定义了每个server块对应的二级域名。 - location / { ... } 配置了URL路径的代理转发规则,这里将所有请求直接转发到指定的Tomcat应用上下文路径,保持地址栏不变。 - proxy_pass 设置了请求被转发到的Tomcat地址和上下文路径。 - proxy_set_header 设置了传递给后端服务器的HTTP头信息,以便于正确的处理请求。

  1. 重启Nginx服务:保存配置文件后,使用命令重启Nginx服务以使更改生效。通常可以使用如下命令:

    sudo service nginx restart
    
  2. 确认Tomcat配置:确保Tomcat中的两个项目(xinwen和luntan)已经部署,并且能够独立运行在不同的上下文路径下。

完成以上步骤后,访问news.test.com和forum.test.com时,应该能直接看到对应Tomcat项目的内容,而地址栏保持不变。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答