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

24 篇文章 1 订阅

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

什么是反向代理?

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

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

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

安装 WSL 上的 NGINX

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

sudo apt-get update

使用以下服务安装 NGINX

sudo apt-get install nginx -y

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

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.

启动 NGINX 服务

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

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

service --status-all

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

[ - ]  nginx

输入以下命令启动服务:

sudo service nginx start

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

在这里插入图片描述

设置一个反向代理

使用 nano 打开 nginx 的配置文件

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

假设我们有一个在 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;
	}

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

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

最后记得重启 nginx 服务:

sudo service nginx restart

排错

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

cat /var/log/nginx/error.log 

结论

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

surfirst

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值