一、前言
公司现在是微服务项目,网关使用的是 gateway,出于一些考虑暂时没有实际的去使用,甚至代码里一大片的注释内容。。
但是现在前端测试的时候,还是使用的单一代理模式,只能访问一个端口,为了使前端更方便多模块共同测试,而不是每次切模块的时候都要切换代理地址,所以我准备使用 Nginx反向代理我的几个项目端口
二、Nginx
老规矩,介绍,官网,安装一条龙服务
简介
Nginx是目前负载均衡的主流解决方案,同时他是一个轻量级,高性能的Http反向代理服务器
- 内存占用少
- 性能高
- 支持并发高
正向代理和反向代理
既然我们上面说到了 Nginx是反向代理服务器,那么就顺便来了解一下什么是正向代理和反向代理吧
正向代理:局域网中的设备如果想要直接访问互联网是不可行的,只能通过代理服务器来访问
之前有新闻,公司监控员工浏览网页或者在公司正常百度可以,但是点进B站(无故躺枪)就500,这就是正向代理将某些网站加入了黑名单,或者某网站地址不在白名单
反向代理: 相比于正向代理,反向代理互联网人知道的应该更多一点,反向代理就是将解析请求然后转发到对应的服务器上面
比如说我们是微服务项目,每个子模块都部署在了不同的端口上面,这个时候我们配置了反向代理,就可以通过不同的 url地址来找到对应的端口并请求
官网
上图一般人应该是看不懂的吧,纯英文真的是不友好,使用浏览器自带翻译安排一手,最少大概能看懂了
右边侧边栏 download或者汉字 下载点进去进入下载界面,这里我们选择稳定版 1.22.0
安装
下载解压,直接点进去,双击 nginx.exe运行相关程序
程序成功运行之后,进入浏览器输入: localhost就会进入一下页面,证明我们 nginx安装成功了
实际上不推荐上面的这种启动方式,我在尝试的时候发现使用双击启动的方式,没办法重启或者停止nginx
进入 conf文件夹,开始我们的配置文件之旅
我把所有的注释都干掉了,然后根据自己的需求进行了以下配置,因为我的需求很简单,就是前端通过统一前缀来请求对应端口数据
events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; # 访问 localhost 跳转到 www.baidu.com location / { proxy_pass https://www.baidu.com/; } # 访问 localhost/test1 跳转到 localhost:1234 location /test1/ { proxy_pass http://localhost:1234/; } # 访问 localhost/test2 跳转到 localhost:5678 location /test2/ { proxy_pass http://localhost:5678/; } } } 复制代码
Windows下的 Nginx常用命令
- 查看版本号
- nginx -v
- 启动:
- start nginx 或 nginx.exe
- 快速停止nginx
- nginx -s stop
- 正常关闭nginx
- nginx -s quit
- 重启
- nginx -s reload
- 查看nginx进程
- tasklist /fi "imagename eq nginx.exe"
- 查看所有nginx进程
- tasklist /fi "imagename eq nginx.exe"
- 中止nginx相关进程
- taskkill /f /t /im nginx.exe
如果你是在公司看的我这篇文章,同时又测试了一下,恰好你也是后端,相关的接口前端正在调用,相信我,进程相关的命令你会用到的,不要问我怎么知道的