如何在 WSL 下实现 NGINX 反向代理
创始人
2024-02-20 06:53:56
0

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-filterlibnginx-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-filterlibnginx-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,以及如何配置一个反向代理。

相关内容

热门资讯

20州因签证问题起诉联邦政府,... 【环球时报特约记者 任重】据美国《新闻周刊》13日报道,当地时间12日,美国20个州起诉联邦政府,反...
水晶宫主帅格拉斯纳:0比3失利... 在12月15日的英超联赛中,水晶宫主场迎战曼城,最终以0比3的比分落败。这场比赛不仅对水晶宫来说是一...
明年将根据形势出台实施增量政策 ● 本报记者 熊彦莎 中央财办分管日常工作的副主任、中央农办主任韩文秀12月13日在中国国际经济交流...
“何晴告别仪式”将以家人送别的... 12月13日,著名演员何晴在北京安然离世,享年61岁。 记者从98版《水浒传》制片主任汪瑞处获悉,根...
外籍男子携带多件文物出境被查!... 12月14日,南都N视频记者从“海关发布”公众号获悉,近日,西九龙站海关查获出境旅客携带11件/套古...
21场0球!哈曼:利物浦花1.... 在利物浦2-0战胜布莱顿的赛前,前利物浦球员哈曼在德国天空体育上对新加盟的维尔茨发表了颇具争议的看法...
公益诉讼保障快递小哥出行安全 本报讯(记者 徐慧瑶)“师傅,您的快递三轮车雨刷器、后视镜都完好吗?车辆有没有定期检修……”近日,顺...
俄罗斯免签政策落地:解锁跨境新... 当俄罗斯对中国居民免签的政策正式落地,不仅为普通民众打开了“说走就走”的跨境出行大门,更在经济、人文...
原创 从... 近年来,随着全球地缘政治的变动与经济重心的转移,“东升西降”的趋势愈发明显。或许在不久的将来,这一局...
4斤黄金凤冠被男童碰坏!谁该担... 千万网红张凯毅的4斤重黄金凤冠,在免费展览中被男童触碰掉落损坏,这顶由其老公亲手打造、意义非凡的展品...