Nginx反向代理tomcat

发布于 2022-09-03 23:49:39 字数 1923 浏览 15 评论 0

有两个jsp应用,本地访问地址如下

http://127.0.0.1:8080/app1
http://127.0.0.1:8080/app2

通过下面的配置可以实现 http://domain.com/app1http://domain.com/app2 的访问

server {
    listen    80;
    server_name    domain.com;
    charset    utf-8;
    location /{
        proxy_pass http://127.0.0.1:8080/;
        proxy_redirect  off;
        proxy_set_header  X-Real-IP $remote_addr;
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

现在想用两个域名来访问这两个应用
通过 http://app1.domain.com 来访问 http://127.0.0.1:8080/app1
通过 http://app2.domain.com 来访问 http://127.0.0.1:8080/app2
配置如下

server {
    listen    80;
    server_name  app1.domain.com;
    charset utf-8;
    location /{
        proxy_pass http://127.0.0.1:8080/app1;
        proxy_redirect  off;
        proxy_set_header  X-Real-IP $remote_addr;
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

server {
    listen    80;
    server_name  app2.domain.com;
    charset utf-8;
    location /{
        proxy_pass http://127.0.0.1:8080/app2;
        proxy_redirect  off;
        proxy_set_header  X-Real-IP $remote_addr;
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

结果只能显示首页,静态资源都无法加载

#我感觉应该这么写可是有语法错误
if ($uri ^/$){proxy_pass http://127.0.0.1:8080/app1;}
if ($uri ^/app1){proxy_pass http://127.0.0.1:8080/$request_uri;}

所以到底应该应该如何配置?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

你的笑 2022-09-10 23:49:39

无法加载是什么意思?是502?还是jsp中的静态路径不对?

此岸叶落 2022-09-10 23:49:39

其实你还是基于上面那个就行的。。然后基于二级域名的伪静态转发就好了。。具体不写了。原理是那样的。要试几次才确定写法的。

大致思路就是把 .domain.com/ 都转发到 http://127.0.0.1:8080/$1/$2

青萝楚歌 2022-09-10 23:49:39

谢邀!
我认为需要做动静分离,把js,css和图片给ngixn处理,不用tomcat处理。jsp的请求才转发给tomcat处理。


location ~ .*\.(jpg|js|css)$ 
{ 
root /home/www/image/;
}
简单气质女生网名 2022-09-10 23:49:39

亲。。。你 root 没写, nginx 怎么给你代理文件?楼上那样就好。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文