nginx反向代理使用(详细版)

news2025/1/18 16:57:11

1. 下载nginx,解压;(随便放在哪里)

2. 在nginx-1.26.0文件夹下创建web文件夹,继续在web文件夹下创建abcd.test.cn文件夹(文件夹的名字就叫abcd.test.cn);

3. 配置前端代理;(注意端口是90,与下文后端端口 和 nginx.conf中后端配置端口 呼应)

4. 通过 yarn build 或其它打包命令,打包前端项目,获得dist文件夹

5. 将dist文件夹中的东西复制,全部放在 abcd.test.cn文件夹中;

6. 配置后端项目端口90

7. 直接运行后端项目(也可以打包后端项目再通过 java -jar 运行)

8. 配置域名:C:\Windows\System32\drivers\etc下的hosts文件中添加127.0.0.1 abcd.test.cn

        (1)如果提示没有权限更改可以将该文件移动至桌面,改好了再放回去,移动时点击继续;

9. 配置 nginx.conf文件(该文件位于 \nginx-1.26.0\conf 下);

worker_processes  2; 
 
events {
    worker_connections  1024; 
}
 
 
http {
    include       mime.types;
    default_type  application/octet-stream;
 
    sendfile        on;
 
    keepalive_timeout  65;
 
   server {

        listen 80;
        server_name abcd.test.cn;
        index index.php index.html index.htm default.php default.htm default.html;
        root D:\\nginx-1.26.0\\web\\abcd.test.cn;
    
        # 前端
        location / {
             alias /nginx-1.26.0/web/abcd.test.cn/;
             try_files $uri $uri/ /index.html;
             index index.html;
        }
    
        #后端
        location /openapi/ {
             proxy_pass http://127.0.0.1:90/openapi/ ;
             proxy_set_header Host $host;
             proxy_set_header X-Real-IP $remote_addr;
             proxy_set_header X-Real-Port $remote_port;
             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    
        access_log  D:\\nginx-1.26.0\\web\\abcd.test.cn\\abcd.test.cn.log;
        error_log  D:\\nginx-1.26.0\\web\\abcd.test.cn\\abcd.test.cn.error.log;
    }
 
}

10. 在nginx-1.26.0文件夹下,通过 start nginx 启动nginx;(停止nginx命令为nginx -s stop)

11. 浏览器输入http:abcd.test.cn 即可访问项目;

其它:

(1)正向代理与反向代理理解

正向代理:你去取钱,工作人员把钱给你,工作人员对于你来说是正向代理;

反向代理:工作人员 对于 取钱的这些业务 来说是 反向代理; 

此例:你去找nginx访问项目,nginx通过配置的localhost去 前端/后端 将得到的再返回给你(所以nginx对于前后端项目来说是反向代理)(这里的前端/后端都有自己的端口,是不能和nginx端口一样的)

(2)关于此例

        a. 访问路径为协议:域名(或ip):端口,在浏览器输入http:abcd.test.cn,相当于访问nginx,nginx的端口为上文写的listen 80,在http协议下:80端口可以省略不写(在https协议下:43端口可以省略不写)

        b. 域名不能写xx.xxx.cn格式,例如,我域名最开始写的是gf.test.cn,结果访问不了项目,改成abcd.test.cn就可以访问了(不排除是其它什么的原因导致写gf.test.cn访问不了)

(3)后端打包的文件,不用专门建一个openapi文件夹,再把打包出来的文件放进去,再通过java -jar 运行;打包好后,就直接在项目下通过java -jar 运行就可以了;

(4)上文后端配置中 location /openapi/ 中的 /openapi/ 指的是nginx接收到前端要调用的接口能匹配 /openapi/ 时,实际去后端调用http://127.0.0.1:90/openapi/,与后端打包的文件路径无关;

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

mysql实现隔离性——锁

锁主要解决写-写问题,mvcc用来解决读-写问题 MyISAM不使用行级锁,主要使用表锁 MyISAM存储引擎主要使用表锁(table-level locking),并不支持行级锁(row-level locking)。当MyISAM存储引擎执行…

一个不知名的开源项目可以带来多少收入

起源 2020 年新冠疫情开始蔓延,当时我在同时经营 3 个不同的公司。除了其中的体育赛事平台因为疫情关门大吉之外,另外两个公司并没有受影响,营收和利润反而都持续增加。但是连续几个月不能出远门,也不能随便见朋友和客户&#xff…

Netgear无线路由器漏洞复现(CVE-2019-20760)

漏洞概述 漏洞服务: uhttpd 漏洞类型: 远程命令执行 影响范围: 1.0.4.26之前的NETGEAR R9000设备会受到身份验证绕过的影响 解决建议: 更新版本 漏洞复现 操作环境: ubuntu:22.04 qemu-version: 8.1…

【Linux】了解信号产生的五种方式

文章目录 正文前的知识准备kill 命令查看信号man手册查看信号信号的处理方法 认识信号产生的5种方式1. 工具2. 键盘3. 系统调用kill 向任意进程发送任意信号raise 给调用方发送任意信号abort 给调用方发送SIGABRT信号 4. 软件条件5. 异常 正文前的知识准备 kill 命令查看信号 …

Linux下COOLFluiD源码编译安装及使用

目录 软件介绍 基本依赖 其它可选依赖 一、源码下载 二、解压缩(通过Github下载zip压缩包格式) 三、编译安装 3.1 依赖项-BOOST 3.2 依赖项-Parmetis 3.3 依赖项-PETSc 3.4 安装COOLFluiD 四、算例运行 软件介绍 COOLFluiD(面向对象…

【生信技能树】GEO数据挖掘全流程

R包的安装,每次做分析的时候先运行这段代码把R包都安装好了,这段代码不需要任何改动,每次分析直接运行。 options("repos""https://mirrors.ustc.edu.cn/CRAN/") if(!require("BiocManager")) install.packag…

Java的类和对象(一)—— 初始类和对象,this关键字,构造方法

前言 从这篇文章开始,我们就进入到了JavaSE的核心部分。这篇文章是Java类和对象的第一篇,主要介绍类和对象的概念,this关键字以及构造方法~~ 什么是类?什么是对象? 学过C语言的老铁们,可以类比struct自定义…

【RAG 论文】BGM:为 LLM 和 Retriever 的偏好 gap 搭建一个 Bridge

论文:Bridging the Preference Gap between Retrievers and LLMs ⭐⭐⭐ Google Research, arXiv:2401.06954 论文速读 LLM 与 Retriever 之间存在一个 preference gap:大多数 retriever 被设计为 human-friendly,但是 LLM 的偏好与人类的却…

基于Vue3+ElementPlus项目,复制文字到剪贴板功能实践指南,揭秘使用js-tool-big-box工具库的核心优势

在前端开发项目中,很多时候有那么一个场景,就是要求将一段文案复制下来,这段文案可能是一串很长的id,可能是一条命令语句,可能是一小段文案,复制到剪贴板上。这样有利于用户复制到其他地方去,使…

OpenHarmony 3.1 Release实战开发 + Linux 原厂内核Launcher起不来问题分析报告

1、关键字 Launcher 无法启动;原厂内核;Access Token ID; 2、问题描述 芯片:rk3566;rk3399 内核版本:Linux 4.19,是 RK 芯片原厂发布的 rk356x 4.19 稳定版内核 OH 版本:OpenHa…

漏桶算法:稳定处理大量突发流量的秘密武器!

漏桶算法的介绍 我们经常会遇到这样一种情况:数据包的发送速率不稳定,而网络的带宽有限。如果在短时间内有大量的数据包涌入,那么网络就会出现拥塞,数据包的丢失率就会增大。为了解决这个问题,人们提出了一种叫做“漏…

怎样辨别LED显示屏的品质

在当今数字化时代,LED显示屏已成为信息传播的重要媒介,广泛应用于广告、信息显示、舞台背景等领域。然而,市场上的LED显示屏品质参差不齐,如何鉴别其品质等级成为了用户关注的焦点。以下是一些专业的方法,帮助用户辨别…

geotrust ov泛域名证书2990

Geotrust是一家正规的CA证书颁发机构,致力于为个人以及企事业单位开发者提供安全可靠的数字证书产品,维护了个人博客网站、企业官网、商城网站以及银行等金融网站的数据安全,营造了一种健康的网络环境。今天就随SSL盾小编了解Geotrust旗下的O…

如何判断海外住宅ip的好坏?

在海外IP代理中,住宅IP属于相对较好的资源,无论是用于工作、学习、还是娱乐,都能得到较好的使用效果。作为用户,该如何判断海外住宅IP的好坏呢? 稳定性与可靠性:海外住宅IP相比动态IP地址,通常具…

C++(week3):数据结构与算法

文章目录 (十一) 常用数据结构1.动态数组(1)模型(2).h与.c(3)实现 2.链表(1)模型(2)分类(3)基本操作(API)(4)实现(5)链表常见面试题(6)空间与时间 3.栈(1)模型(2)基本操作(3)实现(4)栈的应用 4.队列(1)模型(2)基本操作(API)(3)实现(4)队列的应用 5.哈希表(1)哈希表的提出原因(2…

Samtec技术分享 | 电源/信号高密度阵列的新视角

【摘要/前言】 “角度”,这个词每天都出现在我们的生活中,有物理学的角度,如街边的拐角,还有视觉上的角度和观点中的角度~ Samtec新型 AcceleRate mP 高密度电源/信号互连系统正是从电源完整性 90度旋转的不同角度中诞生的。 …

作为前端开发,感受下 nginx 带来的魅力!

引言:纯干货分享,汇总了我在工作中八年遇到的各种 Nginx 使用场景,对这篇文章进行了细致的整理和层次分明的讲解,旨在提供简洁而深入的内容。希望这能为你提供帮助和启发! 对于前端开发人员来说,Node.js 是…

#自学习# 记一次py脚本打开浏览器页面

在项目总结中,遇到系统后台利用浏览器拉起一个已知路径页面的需求,趁着机会整理下。实现起来比较简单,浏览器默认谷歌。 一、技术原理 Selenium:Selenium 是一个用于自动化 Web 浏览器的工具,可模拟用户在浏览器中的各…

帧类型代价计算原理:slicetype_frame_cost 函数分析

slicetype_frame_cost 函数 函数功能 这个函数的核心是计算编码一系列帧(从 p0 到p1,以 b 为当前帧)的代价 cost,并根据这个代价 cost来辅助帧类型决策。它考虑了运动搜索的结果、帧间和帧内预测的成本,并且可以并行处理以提高效率。该函数在帧类型决策、MBtree 分析、场…

硅胶可以镭射吗?

在科技发展的今天,我们经常会遇到各种各样的材料,其中就有一种叫做硅胶的材料。那么,硅胶可以镭射吗?答案是肯定的,硅胶不仅可以镭射,而且在某些应用中,它的镭射特性还非常突出。 首先&#xff…