微服务没有gateway网关?那我就用nginx浅浅的反向代理一下吧

2,602 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第3天,点击查看活动详情

一、前言

公司现在是微服务项目,网关使用的是 gateway,出于一些考虑暂时没有实际的去使用,甚至代码里一大片的注释内容。。

但是现在前端测试的时候,还是使用的单一代理模式,只能访问一个端口,为了使前端更方便多模块共同测试,而不是每次切模块的时候都要切换代理地址,所以我准备使用 Nginx反向代理我的几个项目端口

二、Nginx

老规矩,介绍,官网,安装一条龙服务

简介

Nginx是目前负载均衡的主流解决方案,同时他是一个轻量级,高性能的Http反向代理服务器

  • 内存占用少
  • 性能高
  • 支持并发高

正向代理和反向代理

既然我们上面说到了 Nginx是反向代理服务器,那么就顺便来了解一下什么是正向代理和反向代理吧

正向代理:局域网中的设备如果想要直接访问互联网是不可行的,只能通过代理服务器来访问

之前有新闻,公司监控员工浏览网页或者在公司正常百度可以,但是点进B站(无故躺枪)就500,这就是正向代理将某些网站加入了黑名单,或者某网站地址不在白名单

反向代理: 相比于正向代理,反向代理互联网人知道的应该更多一点,反向代理就是将解析请求然后转发到对应的服务器上面

比如说我们是微服务项目,每个子模块都部署在了不同的端口上面,这个时候我们配置了反向代理,就可以通过不同的 url地址来找到对应的端口并请求

官网

Nginx官网

image.png

上图一般人应该是看不懂的吧,纯英文真的是不友好,使用浏览器自带翻译安排一手,最少大概能看懂了

image.png

右边侧边栏 download或者汉字 下载点进去进入下载界面,这里我们选择稳定版 1.22.0

image.png

安装

下载解压,直接点进去,双击 nginx.exe运行相关程序

image.png

程序成功运行之后,进入浏览器输入: localhost就会进入一下页面,证明我们 nginx安装成功了

image.png

实际上不推荐上面的这种启动方式,我在尝试的时候发现使用双击启动的方式,没办法重启或者停止nginx

进入 conf文件夹,开始我们的配置文件之旅

image.png

我把所有的注释都干掉了,然后根据自己的需求进行了以下配置,因为我的需求很简单,就是前端通过统一前缀来请求对应端口数据

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

如果你是在公司看的我这篇文章,同时又测试了一下,恰好你也是后端,相关的接口前端正在调用,相信我,进程相关的命令你会用到的,不要问我怎么知道的




本文内容到此结束了

如有收获欢迎点赞👍收藏💖关注✔️,您的鼓励是我最大的动力。

如有错误❌疑问💬欢迎各位大佬指出。

我是 宁轩 , 我们下次再见