• 如何在 WSL 下实现 NGINX 反向代理


    WSL 是 Windows 自带的 Linux 子系统。它比传统的虚机启动更快,占用系统资源更少,非常利于我们开发基于 Linux 系统的各种应用。本文基于 Ubuntu 20 介绍如何使用 NGINX 实现反向代理功能。

    什么是反向代理

    反向代理是一个可以把系统请求分发给后台系统的工具。在现在的微服务时代,我们的系统由各种子服务组成。在同一台机器上每个服务暴露出不同的端口和路径。

    为了让客户端能统一从一个端口访问到我们的后台服务,我们可以使用反向代理来从一个统一的入口通过路径 (Path)、头标记(header)等把请求路由到不同的微服务。
    在这里插入图片描述

    NGINX 可以帮助我们实现反向代理功能。

    安装 WSL 上的 NGINX

    输入以下命令更新 APT 安装源

    sudo apt-get update
    
    • 1

    使用以下服务安装 NGINX

    sudo apt-get install nginx -y
    
    • 1

    你会看到类似于下面的输出内容

    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    The following package was automatically installed and is no longer required:
      libfwupdplugin1
    Use 'sudo apt autoremove' to remove it.
    The following additional packages will be installed:
      libgd3 libjbig0 libjpeg-turbo8 libjpeg8 libnginx-mod-http-image-filter libnginx-mod-http-xslt-filter
      libnginx-mod-mail libnginx-mod-stream libtiff5 libwebp6 nginx-common nginx-core
    Suggested packages:
      libgd-tools fcgiwrap nginx-doc ssl-cert
    The following NEW packages will be installed:
      libgd3 libjbig0 libjpeg-turbo8 libjpeg8 libnginx-mod-http-image-filter libnginx-mod-http-xslt-filter
      libnginx-mod-mail libnginx-mod-stream libtiff5 libwebp6 nginx nginx-common nginx-core
    0 upgraded, 13 newly installed, 0 to remove and 47 not upgraded.
    Need to get 1218 kB of archives.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    启动 NGINX 服务

    WSL 使用 service 命令启动和停止服务。

    我们先看看 NGINX 的服务状态,使用如下命令:

    service --status-all
    
    • 1

    你会看到一个列表,其中 NGINX 的前面是 “-” 号,表示 NGINX 还是停止状态。

    [ - ]  nginx
    
    • 1

    输入以下命令启动服务:

    sudo service nginx start
    
    • 1

    在浏览器中输入 http://localhost 可以看到以下网页。

    在这里插入图片描述

    设置一个反向代理

    使用 nano 打开 nginx 的配置文件

    sudo nano /etc/nginx/sites-available/default
    
    • 1

    假设我们有一个在 http://localhost:3000/ui 上的服务。我们可以给 nginx 增加一条如下的配置,这样我们就可以直接通过 http://localhost/ui 来访问这个服务了。

    	location /ui {
    		proxy_pass http://localhost:3000/ui;
    		proxy_buffering off;
      		proxy_set_header X-Real-IP $remote_addr;
    	}
    
    • 1
    • 2
    • 3
    • 4
    • 5

    上面的 proxy_buffering 是可选项。如果没有这个选项,nginx会提供缓存加速功能。为了避免缓存让我们看不到更新内容,这里我们关掉了缓存服务。

    下面的 proxy_set_header X-Real-IP $remote_addr, 让后台服务能够得到真实的 ip 地址。

    最后记得重启 nginx 服务:

    sudo service nginx restart
    
    • 1

    排错

    如果配置 nginx 的过程中遇到问题,可以使用如下命令查看 nginx 的日志。

    cat /var/log/nginx/error.log 
    
    • 1

    结论

    本文简要介绍了如何在 Windows WSL 中安装 nginx,以及如何配置一个反向代理。

  • 相关阅读:
    学会Redis这一篇就够了(1)
    VALSE2022内容总结
    分享一下蛋糕店在微信小程序上可以实现什么功能
    GC不懂?进来我们聊聊
    希尔排序:优化插入排序的精妙算法
    类的成员之一:代码块
    mac下nodejs的卸载与安装
    .Net之延迟队列
    攻防世界WEB(二)baby_web、Training-WWW-Robots、PHP2、unserialize3
    数据增强功能工具,选项功能对照表
  • 原文地址:https://blog.csdn.net/surfirst/article/details/128066611