关于Nginx前后端分离部署spring boot和vue工程以及反向代理的配置说明

最近项目中用到关于Nginx前后端分离部署spring boot和vue工程以及反向代理的配置,总结了一下说明:

1、后端是spring boot工程,端口8000,通过 jar命令启动

nohup java -jar xxx-jsonflow-biz.jar > /usr/local/nohup.out 2>&1 &

2、后台前端是vue工程,打包成dist文件夹,端口是13000,nginx配置如下:

    server {
        listen 13000;
        server_name localhost;
        gzip on;
        gzip_min_length 1k;
        gzip_comp_level 4;
        gzip_proxied any;
        gzip_types text/plain text/xml text/css;
        gzip_vary on;
        gzip_disable "MSIE [1-6]\.(?!.*SV1)";

        root /usr/local/nginx/html/dist;

       location ~* ^/jsonflow/ {
           #proxy_pass http://127.0.0.1:8000;
           proxy_connect_timeout 15s;
           proxy_send_timeout 15s;
           proxy_read_timeout 15s;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
           proxy_set_header X-Forwarded-Proto http;
           #proxy_method GET POST PUT DELETE;
           add_header Access-Control-Allow-Origin *; 
           add_header Access-Control-Allow-Credentials 'true'; 
           add_header Access-Control-Allow-Methods 'GET,PUT,POST,OPTIONS'; 
           add_header Access-Control-Allow-Headers 'user-id,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
           if ($request_method = 'OPTIONS') {
              return 204;
           }
           proxy_pass http://127.0.0.1:8000;
        }

        if ($request_uri ~ "/actuator"){
            return 403;
        }
    }

3、h5移动端是2个应用,配了2个server,分别对应h5文件夹下的2个目录,nginx配置如下:

    server {
        listen       9001;
        server_name  localhost;
        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        error_page 403 =200 /40x.html;
        location /40x.html {
           root html;
        }

        location / {
            root   html/h5/yiyuan;
            index  index.html ;
        }
    }

    server {
        listen       9002;
        server_name  localhost;
        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        error_page 403 =200 /40x.html;
        location /40x.html {
           root html;
        }

        location / {
            root   html/h5/yaodian;
            index  index.html ;
        }
    }

4、完整的nginx.conf配置文件如下:


#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
     map $http_upgrade $connection_upgrade {
        default upgrade;
        ''      close;
    }
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    server {
        listen       9001;
        server_name  localhost;
        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        error_page 403 =200 /40x.html;
        location /40x.html {
           root html;
        }

        location / {
            root   html/h5/yiyuan;
            index  index.html ;
        }
    }

    server {
        listen       9002;
        server_name  localhost;
        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        error_page 403 =200 /40x.html;
        location /40x.html {
           root html;
        }

        location / {
            root   html/h5/yaodian;
            index  index.html ;
        }
    }

    server {
        listen 13000;
        server_name localhost;
        gzip on;
        gzip_min_length 1k;
        gzip_comp_level 4;
        gzip_proxied any;
        gzip_types text/plain text/xml text/css;
        gzip_vary on;
        gzip_disable "MSIE [1-6]\.(?!.*SV1)";

        root /usr/local/nginx/html/dist;

       location ~* ^/(jsonflow/ws) {
          proxy_pass http://127.0.0.1:8000;
          proxy_http_version 1.1;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection "upgrade";
       }

       location ~* ^/jsonflow/ {
           #proxy_pass http://127.0.0.1:8000;
           proxy_connect_timeout 15s;
           proxy_send_timeout 15s;
           proxy_read_timeout 15s;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
           proxy_set_header X-Forwarded-Proto http;
           #proxy_method GET POST PUT DELETE;
           add_header Access-Control-Allow-Origin *; 
           add_header Access-Control-Allow-Credentials 'true'; 
           add_header Access-Control-Allow-Methods 'GET,PUT,POST,OPTIONS'; 
           add_header Access-Control-Allow-Headers 'user-id,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
           if ($request_method = 'OPTIONS') {
              return 204;
           }
           proxy_pass http://127.0.0.1:8000;
        }

        location ~* ^/(gen) {
           proxy_pass http://127.0.0.1:5003;
           proxy_connect_timeout 15s;
           proxy_send_timeout 15s;
           proxy_read_timeout 15s;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
           proxy_set_header X-Forwarded-Proto http;
        }

        if ($request_uri ~ "/actuator"){
            return 403;
        }
    }
}

5、nginx目录如下图:

6、番外,关于https证书的配置:

	server {
		listen 443 ssl;
		server_name localhost;
		gzip on;
		gzip_static on;
		gzip_min_length 1k;
		gzip_comp_level 4;
		gzip_proxied any;
		gzip_types text/plain text/xml text/css;
		gzip_vary on;
		gzip_disable "MSIE [1-6]\.(?!.*SV1)";
        ssl_protocols GMTLSv1.1;
        ssl_certificate crt/gm/SS.pem;
        ssl_certificate_key crt/gm/SS.key.pem;
        ssl_certificate crt/gm/SE.pem;
        ssl_certificate_key crt/gm/SE.key.pem;

        root /usr/local/dist;
		
	   location ~* ^/(ewaycloud) {
		   proxy_pass http://127.0.0.1:8000;
		   proxy_connect_timeout 60s;
		   proxy_send_timeout 60s;
		   proxy_read_timeout 60s;
		   proxy_set_header X-Real-IP $remote_addr;
		   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		   proxy_set_header X-Forwarded-Proto http;
		}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/927755.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

debian 11 虚拟机环境搭建过坑记录

目录 安装过程系统配置修改 sudoers 文件网络配置换源安装桌面mount nfs 挂载安装复制功能tab 无法补全其他安装 软件配置eclipse 配置git 配置老虚拟机硬盘挂载 参考 原来去 debian 官网下载了一个最新的 debian 12,安装后出现包依赖问题,搞了半天&…

Android:生成Excel表格并保存到本地

提醒 本文实例是使用Kotlin进行开发演示的。 一、技术方案 org.apache.poi:poiorg.apache.poi:poi-ooxml 二、添加依赖 [versions]poi "5.2.3" log4j "2.24.2"[libraries]#https://mvnrepository.com/artifact/org.apache.poi/poi apache-poi { module…

RK3576技术笔记之一 RK3576单板介绍

第二篇嘛,亮亮我们做出来的板子,3576这个片子的基本功能接口单板都做了,接口数量肯定是比不上3588(PS:这个我们也在做,后续都完成后会发文章),但是比起3568来说还是升级了&#xff0…

SQL进阶技巧:如何寻找同一批用户 | 断点分组应用【最新面试题】

目录 0 问题描述 1 数据准备 2 问题分析 ​编辑 3 小结 0 问题描述 用户登录时间不超过10分钟的视为同一批用户,找出以下用户哪些属于同一批用户(SQL实现) 例如: user_name time a 2024-10-01 09:55 b 2024-10-01 09:57 c 2024-10-01…

数字图像处理(11):RGB转YUV

(1)RGB颜色空间 RGB颜色空间,是一种基于红色、绿色、蓝色三种基本颜色进行混合的颜色空间,通过这三种颜色的叠加,可以产生丰富而广泛的颜色。RGB颜色空间在计算机图像处理、显示器显示、摄影和影视制作等领域具有广泛应…

利用Ubuntu批量下载modis图像(New)

由于最近modis原来批量下载的代码不再直接给出,因此,再次梳理如何利用Ubuntu下载modis数据。 之前的下载代码为十分长,现在只给出一部分,需要自己再补充另一部分。之前的为: 感谢郭师兄的指导(https://blo…

HTTP 长连接(HTTP Persistent Connection)简介

HTTP长连接怎么看? HTTP 长连接(HTTP Persistent Connection)简介 HTTP 长连接(Persistent Connection)是 HTTP/1.1 的一个重要特性,它允许在一个 TCP 连接上发送多个 HTTP 请求和响应,而无需为…

淘宝商品详情主图SKU图价格|品牌监控|电商API接口

淘宝/天猫获得淘宝商品详情 API 返回值说明 item_get-获得淘宝商品详情 taobao.item_get 公共参数 名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)secretString是调用密钥api_nameString是API接口名称(包括在请求地址中&a…

单片机学习笔记 17. 串口通信-发送汉字

更多单片机学习笔记:单片机学习笔记 1. 点亮一个LED灯单片机学习笔记 2. LED灯闪烁单片机学习笔记 3. LED灯流水灯单片机学习笔记 4. 蜂鸣器滴~滴~滴~单片机学习笔记 5. 数码管静态显示单片机学习笔记 6. 数码管动态显示单片机学习笔记 7. 独立键盘单片机学习笔记 8…

五层网络协议(封装和分用)

目录 七层网络协议五层网络协议封装1.应用层2.传输层3.网络层4.数据链路层5.物理层 分用1. 物理层2.数据链路层3.网络层 IP 协议4.传输层 UDP 协议5.应用层 七层网络协议 网络通信过程中,需要涉及到的细节,其实是非常非常多的,如果要有一个协…

阿里云人工智能平台(PAI)免费使用教程

文章目录 注册新建实例交互式建模(DSW)注册 注册阿里云账号进行支付宝验证 新建实例 选择资源信息和环境信息,填写实例名称 资源类型需要选择公共资源,才能使用资源包进行抵扣。目前每月送250计算时。1 * NVIDIA A10 8 vCPU 30 GiB 1 * 24 GiB1 * NVIDIA V100 8 vCPU 32 Gi…

【实战】Oracle基础之控制文件内容的5种查询方法

关于Jady: ★工作经验:近20年IT技术服务经验,熟悉业务又深耕技术,为业务加持左能进行IT技术规划,右能处理综合性故障与疑难杂症; ★成长历程:网络运维、主机/存储运维、程序/数据库开发、大数…

蓝桥杯第 23 场 小白入门赛

一、前言 好久没打蓝桥杯官网上的比赛了,回来感受一下,这难度区分度还是挺大的 二、题目总览 三、具体题目 3.1 1. 三体时间【算法赛】 思路 额...签到题 我的代码 // Problem: 1. 三体时间【算法赛】 // Contest: Lanqiao - 第 23 场 小白入门赛 …

使用 Pytorch 构建 Vanilla GAN

文章目录 一、说明二、什么是 GAN?三、使用 PyTorch 的简单 GAN(完整解释的代码示例)3.1 配置变量3.2 、PyTorch 加速3.3 构建生成器3.4 构建鉴别器 四、准备数据集五、初始化函数六、前向和后向传递七、执行训练步骤八、结果 一、说明 使用…

【Windows 11专业版】使用问题集合

博文将不断学习补充 I、设置WIN R打开应用默认使用管理员启动 1、WIN R输入 secpol.msc 进入“本地安全策略”。 2、按照如下路径,找到条目: “安全设置”—“本地策略”—“安全选项”—“用户账户控制:以管理员批准模式运行所有管理员” …

合规性要求对漏洞管理策略的影响

讨论漏洞管理中持续面临的挑战,包括确定漏洞的优先级和解决修补延迟问题。 介绍合规性要求以及自动化如何简化漏洞管理流程。 您认为为什么尽管技术不断进步,但优先考虑漏洞和修补延迟等挑战仍然存在? 企业基础设施日益复杂,攻…

IDEA全局设置-解决maven加载过慢的问题

一、IDEA全局设置 注意:如果不是全局设置,仅仅针对某个项目有效;例在利用网上教程解决maven加载过慢的问题时,按步骤设置却得不到解决,原因就是没有在全局设置。 1.如何进行全局设置 a.在项目页面,点击f…

Java - JSR223规范解读_在JVM上实现多语言支持

文章目录 1. 概述2. 核心目标3. 支持的脚本语言4. 主要接口5. 脚本引擎的使用执行JavaScript脚本执行groovy脚本1. Groovy简介2. Groovy脚本示例3. 如何在Java中集成 Groovy4. 集成注意事项 6. 与Java集成7. 常见应用场景8. 优缺点9. 总结 1. 概述 JSR223(Java Spe…

oracle数据库的启动与关闭

一.oracle数据库的启动过程 启动实例(Start the Instance) 启动实例:一个Oracle数据库实例由内存结构和后台进程组成,启动实例时会加载这些内存结构和启动进程。实例是数据库的一个运行时环境,它包含了数据库的控制文…

【C++】自主实现stack/queue

大家好,我是苏貝,本篇博客带大家了解C的自主实现stack/queue,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️ 目录 1. stack2. queue 栈:后进先出 队列:先进先出 栈和队列…