Nginx 配置
后端路径为 /api,前端路径为 /api/app
#user nobody;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 1234;
server_name 127.0.0.1;
location = /api {
rewrite ^ /api/app;
}
location = /api/ {
rewrite ^ /api/app;
}
location ^~ /api/app {
alias /opt/nginx-1.18.0/api/html;
try_files $uri $uri/ /index.html;
# index index.html;
}
location /api {
proxy_pass http://127.0.0.1:8848/api;
client_max_body_size 1024m;
proxy_set_header Origin '';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}
Jenkins 启动脚本
jar 包中不含依赖
执行 mvn dependency:copy-dependencies 会将项目依赖复制到 target/dependency 目录中,然后将依赖拷贝到 lib 目录下
后端
export BUILD_ID=dontKillMe count=`jps | grep api | wc -l` if [ $count -gt 0 ]; then jps | grep api | awk '{print $1}' | xargs kill -9 fi rm -rf /opt/nginx-1.18.0/api/api.jar cp /opt/jenkins/workspace/api-springboot/target/api.jar /opt/nginx-1.18.0/api/api.jar cd /opt/nginx-1.18.0/api/ nohup java -Dloader.path=lib -jar api.jar &
前端
export BUILD_ID=dontKillMe npm run clean:dist npm run ng build --prod --aot=false --build-optimizer=false --optimization --progress --extractCss rm -rf /opt/nginx-1.18.0/api/app mv ./dist /opt/nginx-1.18.0/api/app count=`lsof -i:1010 | awk 'NR>=2' | awk '{print $2}' | wc -l` if [ $count -gt 0 ]; then lsof -i:1010 | awk 'NR>=2' | awk '{print $2}' | xargs kill -9 else echo $count fi cd /opt/nginx-1.18.0/sbin/ nohup ./nginx &
Maven 主要配置
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>${spring-boot-dependencies.version}</version> <configuration> <layout>ZIP</layout> <!--不打包依赖到 jar 包中--> <includes> <include> <groupId>nothing</groupId> <artifactId>nothing</artifactId> </include> </includes> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin>