Nginx部署多个spring-boot项目(jar方式部署)

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

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

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

主要配置如下:

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;

}

}

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 查看防火墙开发端口
  • 开发端口步骤

  • # 添加

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

  • # 保存

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

  • # 重启服务

  • service iptables restart

    
    # 添加
    
    /sbin/iptables -I INPUT -p tcp --dport 8000 -j ACCEPT
    
    # 保存
    
    /etc/rc.d/init.d/iptables save
    
    # 重启服务
    
    service iptables restart
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值