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,一经查实,立即删除!

相关文章

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…

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

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

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

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

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

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

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

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

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

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

使用Docker创建verdaccio私服

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

unordered_map、unordered_set底层封装

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

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

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

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

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

深度学习之激活函数——Tanh

Tanh 双曲正切1函数(tanh),其图像与sigmoid函数十分相近,相当于sigmoid函数的放大版。在实际的使用中,tanh函数要优先于sigmoid函数。 函数表达式 t a n h e x − e − x e x e − x tanh\frac{e^x-e^{-x}}{e^xe^{-x}} tanhexe−xex−e−…

Git大文件无法直接push用git lfs track 上传大文件具体操作

Git 因为大文件push失败 回退到git add前用git lfs track单独添加大文件 以下work flow仅代表个人解决问题的办法,有优化流程的欢迎交流 回退到git add前 以下指令回退一个commit git reset --soft HEAD~1以下指令撤销所有git add操作,但不删除本地修…

数字绘画教学实训解决方案

一、建设背景 1.1政策背景 教育信息化政策推动:近年来,随着教育信息化政策的不断推动,各级教育部门纷纷出台相关政策,鼓励和支持教育信息化的发展。数字绘画作为现代艺术教育的重要组成部分,其教学实训解决方案的建设…

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

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

【JVM】从三种认知角度重识JVM

目录 JVM概述 JVM主要功能 虚拟机是Java平台无关的保障 JVM概述 JVM:Java Virtual Machine,也就是Java虚拟机。 虚拟机:通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的计算机系统(物理上不存在)。 JVM通…

聊聊ChatGPT:智能语言模型背后的原理

目录 1. ChatGPT的基础:GPT模型 2. 预训练与微调:让模型更加智能 2.1 预训练 2.2 微调 3. 多样化的应用场景 4. 未来的展望 5. 结语 在当今的人工智能领域,OpenAI的ChatGPT无疑是一个炙手可热的话题。它不仅能流畅地进行对话&#xff…

一键批量合并视频:掌握视频剪辑技巧解析,轻松创作完美影片

在数字时代的浪潮下,视频已成为人们记录和分享生活的重要工具。然而,对于许多非专业视频编辑者来说,将多个视频片段合并成一个完整的影片却是一项复杂且耗时的任务。幸运的是,云炫AI智剪一键批量合并视频功能的出现,让…