建站教程

建站教程

Products

当前位置:首页 > 建站教程 >

nginx网页配置工具(Nginx反向代理springboot的jar包过程解析)

GG网络技术分享 2025-03-18 16:14 18


nginx网页配置工具

功能说明

本项目可以使用WebUI配置nginx的各项功能, 包括http协议转发, tcp协议转发, 反向代理, 负载均衡, ssl证书自动申请、续签、配置等, 最终生成nginx.conf文件并覆盖nginx的默认配置文件, 完成nginx的最终功能配置.

nginx本身功能复杂, 本项目并不能涵盖nginx所有功能, 只能配置常用功能, 更高级的功能配置仍然需要在最终生成的nginx.conf中进行手动编写。

部署此项目后, 配置nginx再也不用上网各种搜索, 再也不用手动申请和配置ssl证书, 只需要在本项目中进行增删改查就可方便的配置nginx。

技术说明

本项目是基于springBoot的web系统, 数据库使用sqlite, 因此服务器上不需要安装任何数据库

其中orm使用了本人自己开源的sqlHelper项目作为orm, 使用sqlite作为数据库, 项目启动时会释放一个.sqlite.db到系统用户文件夹中, 注意进行备份

本系统通过Let's encrypt申请证书, 使用acme.sh脚本进行自动化申请, 开启续签的证书将在每天凌晨2点进行续签, 只有超过60天的证书才会进行续签.

因为申请证书必须要使用80端口, 因此在申请和续签的时候nginx将会短暂关闭,请注意。

安装说明

以Ubuntu操作系统为例, 以下命令请使用root账户权限执行

1.安装java运行环境

apt install openjdk-11-jdk

2.下载最新版发行包jar

启动命令

nohup java -jar nginxWebUI-1.0.0.jar --server.port=8080 > nginxWebUI.log &

如果不加--server.port=xxxx, 默认以8080端口启动

使用说明

打开http://xxx.xxx.xxx.xx:8080 默认登录名密码为admin/admin

进入系统后,可在管理员管理里面添加修改管理员账号

在http转发配置中可以配置nginx的http项目,进行http转发,默认会给出几个常用配置,其他需要的配置可自由增删改查

在TCP转发配置中可以配置nginx的stream项目,进行tcp/ip转发

在反向代理中可配置nginx的反向代理即server项功能,可开启ssl功能,可以直接从网页上上传pem文件和key文件,或者使用内置申请的证书,可以直接开启http转跳https功能,用户直接访问http会转跳到https

在负载均衡中可配置nginx的负载均衡即upstream项功能,在反向代理中可选择代理目标为负载均衡项

在证书管理中可添加证书, 并进行签发和续签.

最终生成conf文件,可在此进行进一步手动修改,确认修改无误后,可覆盖本机conf文件,并进行效验和重启

Nginx反向代理springboot的jar包过程解析

springboot项目部署到服务器常见的方式就是打成war包部署Tomcat或者打成jar包直接使用内置容易运行,很多人现在都打成war包部署到tomcat,这种方式虽然没问题 但是后期维护比较麻烦。从官方的说明中 打成jar部署是最好的方式,但是这样又有个问题 如果同时部署多个spring-boot项目 端口不一样 怎么通过域名来访问呢,接下来就需要Nginx出手了,Nginx 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。很适合部署springboot,Nginx的安装这里不在做教程 给出主要nginx.conf的配置

样例一;

server {

listen    80;

server_name 127.0.0.1;

access_log logs/book.log;

error_log logs/book.error;

#将/wx-service请求转发给http://127.0.0.1:8011/wx-service处理

location /wx-service {

proxy_set_header Host $host;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_pass http://127.0.0.1:8011/wx-service;

}

#将/bootdo请求转发给http://127.0.0.1:8012/bootdo处理

location /bootdo {

proxy_set_header Host $host;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_pass http://127.0.0.1:8012/bootdo;

}

#将/xcloud-service请求转发给http://127.0.0.1:8013/xcloud-api处理

location /xcloud-service {

proxy_set_header Host $host;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_pass http://127.0.0.1:8013/xcloud-api;

}

#将/eureka-service请求转发给http://127.0.0.1:8081/eureka-service处理

location /eureka-service {

proxy_pass http://127.0.0.1:8081/eureka-service; #这里的端口记得改成项目对应的哦

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header X-Forwarded-Proto $scheme;

proxy_set_header X-Forwarded-Port $server_port;

}

#将/xcloud-api请求转发给http://127.0.0.1:8082/xcloud-api处理

location /xcloud-api {

proxy_pass http://127.0.0.1:8082/xcloud-api; #这里的端口记得改成项目对应的哦

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header X-Forwarded-Proto $scheme;

proxy_set_header X-Forwarded-Port $server_port;

}

}

样例二:

server {

listen    80;

server_name localhost;

#charset koi8-r;

#access_log logs/host.access.log main;

location / {

root  html;

index index.html index.htm index.php;

}

#将/wvv请求转发给http://127.0.0.1:1992/wvv处理

location /wvv {

proxy_set_header Host $host;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_pass http://127.0.0.1:1992/wvv;

}

}

如果是部署多个SpringBoot项目,则可以多次添加如下配置,只要修改成不一样的路径即可

#将/wvv请求转发给http://127.0.0.1:1991/project处理

 location /project{

proxy_set_header Host $host;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_pass http://127.0.0.1:1991/project;

}

将nginx的端口改成80端口 域名就可以直接访问 service_name可以为localhost 代表本机 localtion /XXX这块就是配置nginx端口转发 不输了几个项目就配置几个 也可以将tomcat中的项目配置在这 也是没问题的 根据上述配置 在sbin目录执行 ./nginx -s reload 刷新nginx配置就会生效了

在这提供一个spring-boot快速重启shell脚本 亲测有效

export JAVA_HOME=/usr/local/java/jdk1.8.0_162

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

Port=8081

JarName=clouddo-server.jar

LogsPatch=./logs_$Port

ID=`ps -ef | grep $Port | grep -v \"grep\" | awk \'{print $2}\'`

echo $ID

echo \"---------------\"

for id in $ID

do

kill -s 9 $id

echo \"killed $id\"

done

echo \"---------------\"

rm -rf $LogsPatch

mkdir $LogsPatch

export LANG=zh_CN.UTF-8

set -m

nohup java -jar -Dlogging.path=$LogsPatch $JarName>$LogsPatch/catlina.out 2>&1 &

tail -f $LogsPatch/catlina.out

保存命名为xx.sh

建议在nginx下建立一个单独的文件夹以项目名命名,然后将jar包放入其中,再启动jar包。

java -jar revenue-1.0.jar >revenue.txt &

记住 springboot项目得在配置文件中配置

server:
context-path: /xcloud-api

Spring boot默认是/ 这样直接通过http://ip:port/就可以访问到index页面 但是我们要通过nginx配置多项目的话就要给每一个项目单独指定context-path

在服务器目录根据个人喜好新建一个文件夹 专门用来存放spring-boot打包成的jar 和重启脚本 类似这样

这样方便管理 logs目录是启动脚本之后生成的日志文件夹 忽略 一个项目对应一个文件夹 里面包含项目jar和一个重启shell脚本

这样就可以同时后台启动多个springboot项目并且通过一个域名来访问这些项目 如果要实时查看日志 请进入到每个项目文件的logs-目录执行

tail -f catlina.out就可以查看了 如有不足请指出 多多谅解......

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

Nginx反向代理springboot的jar包过程解析 (https://www.wpmee.com/) WordPress教程 第1张

标签:

提交需求或反馈

Demand feedback