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

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.mzph.cn/pingmian/12097.shtml

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

相关文章

Self-attention自注意力机制

Self-attention 和 CNN(卷积神经网络)是深度学习中常用的两种架构,用于不同类型的任务。下面是它们之间的比较: Self-Attention(自注意力机制) 适用范围: Self-attention 主要用于处理序列数据&#xff0c…

刷写case移植记录

上位机刷写case移植: 在刷写APP时断电,然后重新刷写 传输数据时,电压异常 在刷写APP时断开CAN线,重新刷写 刷写过程中BlockSequenceCounter重复传输达到3次后,36服务回复NRC73, 刷写过程中BlockSequen…

Ubuntu安装k8s集群

文章目录 Ubuntu安装k8s3台主机前置操作:3台主机k8s前置安装命令:k8s安装命令: 节点加入 Ubuntu安装k8s 官方文档:https://kubernetes.io/zh-cn/docs/setup/production-environment/tools/kubeadm/install-kubeadm/ 默认3台机子 注…

软件项目验收第三方测试报告如何获取

软件项目验收第三方测试报告是确保软件质量、安全性和稳定性的重要环节。对于企业和开发者来说,获取一份全面、专业的第三方测试报告,对于提升软件产品的竞争力和用户满意度至关重要。本文将介绍如何获取软件项目验收第三方测试报告,以及相关…

1Panel应用推荐:Uptime Kuma

1Panel(github.com/1Panel-dev/1Panel)是一款现代化、开源的Linux服务器运维管理面板,它致力于通过开源的方式,帮助用户简化建站与运维管理流程。为了方便广大用户快捷安装部署相关软件应用,1Panel特别开通应用商店&am…

在 CSS 中使用 text-emphasis 来增强文本的趣味性

在CSS中设置文本样式的方法有很多。您可以更改颜色、大小、字体,甚至添加阴影和轮廓等效果。但最近,我了解到一个我以前没有听说过的时尚 CSS 属性,它非常棒! 它被称为文本强调(text-emphasis)&#xff0c…

js遇到需要正则匹配来修改img标签+清除行内样式

方法一 var regex0 new RegExp("(i?)(\<img)([^\>]\>)", "gmi") //正则匹配表达式this.newcontent this.content.replace(regex0,"$2 styledisplay:block;margin: auto;width:120px; $3") //下面这个则需要在$2 $3左右添加和修改东…

列表(list)

1.列表概念 变量&#xff1a;使用变量存储数据,&#xff0c;但是存在一个缺点:&#xff0c;一个变量一次只能存储一个数据 若要存储多个数据&#xff1a;一般使用列表 列表本质上面是一个有序的集合. 2.创建列表 语法&#xff1a; 变量名 列表 列表名称 [数据1,数据2....…

什么是RSocket?它有哪些优势?

在传统Web应用开发过程中&#xff0c;我们都是基于HTTP协议实现请求-响应式的交互方式。这种交互方案很简单&#xff0c;但不够灵活&#xff0c;也无法应对所有的响应式应用场景。那么&#xff0c;有没有在网络协议层上提供更加丰富的交互方式呢&#xff1f;答案是肯定的&#…

Alibaba SpringCloud集成Nacos、Sentinel实现服务治理-17

关于服务治理 总体而言&#xff0c;限流和降级作为微服务架构中的重要机制&#xff0c;尽管在实现上可能有多种方式&#xff0c;但它们都着眼于保护服务提供者和消费者&#xff0c;在面对异常情况时确保系统稳定运行。限流关注于保护服务提供者&#xff0c;控制请求流量&#…

【linux系统学习教程 Day02】网络安全之Linux系统学习教程,管道,文件内容统计,过滤排序,去重,目录介绍

1-4 管道 管道符号&#xff1a; | &#xff0c;可以将前面指令的执行结果&#xff0c;作为后面指令的操作内容。 ## 比如过滤ip地址 ip addr | tail -4 | head -1 解释一下就是先执行 ip addr ,得到的结果当做 tail -4 的输入&#xff0c;意思就是查看ip addr 结果的后四行内容…

Android 控件自定义属性三部曲

在Android开发中&#xff0c;自定义控件属性是提高控件复用性和定制化的重要手段。通过定义自定义属性&#xff0c;你可以为控件添加额外的配置选项&#xff0c;从而使得控件更加灵活和易用。以下是一个示例&#xff0c;展示如何创建一个具有自定义属性的Android控件。 1. 创建…

Oracle 的 RMAN(Recovery Manager) 和 DM(达梦数据库)的 DMRman异同

Oracle 的 RMAN&#xff08;Recovery Manager&#xff09; 和 DM&#xff08;达梦数据库&#xff09;的 DMRman异同 Oracle 的 RMAN&#xff08;Recovery Manager&#xff09; 和 DM&#xff08;达梦数据库&#xff09;的 DMRman 是两个分别用于不同数据库系统的备份和恢复工具…

基于NIOS-II软核流水灯实现

文章目录 一、创建工程二、系统设计1. 在 “component library” 标签栏中找到 “Nios II Processor” 后点击 Add2. 在 ”Component Library” 标签栏中的查找窗口输入 jtag 找到 ”JTAG UART ”&#xff0c;然后点击 Add3. 添加片上存储器 On-Chip Memory(RAM)核4. 查找窗口输…

如何创建和运营新版Facebook粉丝专页

在众多平台中&#xff0c;Facebook粉丝专页无疑是连接全球消费者、扩展品牌影响力的重要工具。如果你是初次接触Facebook粉丝专页&#xff0c;可能会感到有些迷茫——毕竟&#xff0c;只是听说过它的好处&#xff0c;却不知道如何开始。 Facebook粉丝专页不仅是一个分享产品信…

使用Docker创建verdaccio私服

verdaccio官网 1.Docker安装 这边以Ubuntu安装为例Ubuntu 安装Docker​&#xff0c;具体安装方式请根据自己电脑自行搜索。 2.下载verdaccio docker pull verdaccio/verdaccio3.运行verdaccio 运行容器&#xff1a; docker run -it -d --name verdaccio -p 4873:4873 ver…

unordered_map、unordered_set底层封装

文章目录 一、先实现哈希桶1.1哈希桶的实现方法1.2日常普遍的哈希桶存放的数据有两种&#xff1a;字符串和整形1.3哈希桶的实现代码详解1.3.1哈希桶的两种仿函数&#xff08;int和string&#xff09;1.3.2哈希桶的节点&#xff08;如果桶非常深&#xff0c;这里考虑挂红黑树&am…

Android内存不足的监测

ComponentCallbacks2 是 Android 中的一个接口&#xff0c;用于接收内存相关的回调。它主要用于检测应用的内存使用情况&#xff0c;并在系统内存不足时释放不必要的资源。实现这个接口可以帮助应用在内存紧张时更好地管理资源。 以下是一个 Kotlin 示例代码&#xff0c;展示如…

mysql的优缺点是什么

MySQL作为一个广泛使用的开源关系型数据库管理系统&#xff0c;具有其独特的优点和缺点。 MySQL的优点主要体现在以下几个方面&#xff1a; 性能优越&#xff1a;MySQL支持大量的并发连接&#xff0c;同时拥有很高的查询速度。易于使用&#xff1a;MySQL使用标准的SQL语言&am…

苹果M4芯片:大模型本地运算的转折点

在人工智能和机器学习领域&#xff0c;大模型的兴起对硬件提出了前所未有的挑战。苹果公司最近推出的M4芯片&#xff0c;被视为其在这场竞赛中的“第一式”。本文将探讨M4芯片的特点&#xff0c;并与其他芯片进行比较。 M4芯片的亮点 Neural Engine算力&#xff1a;M4芯片的…