前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring Boot项目配合Nginx发布(单IP,单域名,多项目,多端口)

Spring Boot项目配合Nginx发布(单IP,单域名,多项目,多端口)

作者头像
geekfly
发布2022-05-06 19:43:15
1K0
发布2022-05-06 19:43:15
举报
文章被收录于专栏:geekfly

因为喜欢使用jar包发布项目,单个项目的启停不会影响其他项目正常运行,又不喜欢为每个项目都配置域名,所以想到了这样的部署方案:

项目名 端口 访问域名 project1 10001 http://xxx.com/project1 project2 10002 http://xxx.com/project2

主要使用Nginx的location配置过滤,参考教程:

主要配置如下:

代码语言:javascript
复制
server {
            listen       80;
            server_name  xxx.com;#域名
            location /project1/ { # 项目一
                proxy_pass http://10.10.31.62:10001; # 项目1对应的ip和端口
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            }
            location /project2/ {
                proxy_pass http://10.10.31.62:10002; # 项目2对应的ip和端口
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            }
        }

注意:

  • Spring Boot项目在本地调试一般直接使用ip:port/路由,没有添加项目名,在发布时需指定server.context-path=project1,此时访问变成ip:port/project1/路由,方可被Nginx配置的location拦截。
  • 项目发布后可现在Nginx本地根据curl ip:port/project1测试有无返回内容,若已经成功启动,但没有响应,考虑是不是防火墙限制。

常用命令:

lsof -i:8080 查看端口占用

java -jar demo.jar - -spring.config.location=application.yml 启动项目时加载其他的yml文件

iptables -L -n 查看防火墙开发端口

开发端口步骤

代码语言:javascript
复制
# 添加

/sbin/iptables -I INPUT -p tcp --dport 8000 -j ACCEPT

# 保存

/etc/rc.d/init.d/iptables save

# 重启服务

service iptables restart
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-02-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档