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

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

什么是反向代理?

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

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

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

安装 WSL 上的 NGINX

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

sudo apt-get update

使用以下服务安装 NGINX

sudo apt-get install nginx -y

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


                
### 如何在本地环境配置和启动 Nginx 服务器 #### 安装 Nginx 要在本地环境中部署并运行 Nginx,首先需要完成其安装过程。对于不同的操作系统,具体的安装方法可能有所不同。 - **Linux (Ubuntu)** 可以通过包管理器 `apt` 来快速安装 Nginx[^3]。执行以下命令即可完成安装: ```bash sudo apt update sudo apt install nginx ``` - **macOS** 如果使用 macOS,则可以通过 Homebrew 或 Docker 进行安装。以下是基于 Docker 的安装方式[^4]: ```bash docker pull nginx:latest docker run --name my_nginx -p 80:80 -d nginx ``` - **Windows** Windows 用户可以下载官方二进制文件或使用 WSL(Windows Subsystem for Linux)来安装 Nginx。 #### 启动与验证 Nginx 一旦成功安装 Nginx,下一步就是启动服务并确认其正常工作。 - 对于 Ubuntu 系统,可以直接使用以下命令启动 Nginx 并设置开机自启: ```bash sudo systemctl start nginx sudo systemctl enable nginx ``` 打开浏览器访问 `http://localhost` 或 `http://127.0.0.1`,如果看到默认的 “Welcome to Nginx!” 页面,则说明安装成功[^2]。 - 使用 Docker 的用户可通过以下命令查看容器状态,并确保 Nginx 已经运行: ```bash docker ps ``` #### 配置 Nginx 文件 Nginx 的核心功能由配置文件控制,默认路径通常位于 `/etc/nginx/nginx.conf` 或 `/usr/local/nginx/conf/nginx.conf` 中。为了适配特定需求(如代理前端应用),需修改此文件中的相关内容: - 编辑配置文件: ```bash sudo nano /etc/nginx/nginx.conf ``` - 添加一个简单的 server 块以便测试静态资源加载: ```nginx server { listen 80; server_name localhost; location / { root html; index index.html index.htm; } } ``` - 若要实现更复杂的场景(例如反向代理 Vue.js 应用程序至后端 API),可参考以下示例: ```nginx upstream backend { server 127.0.0.1:3000; # 替换为实际后端地址 } server { listen 80; server_name localhost; location /api/ { proxy_pass http://backend/; } location / { root /path/to/vue/dist; # 替换为构建后的 Vue 路径 try_files $uri /index.html; } } ``` #### 监控 Nginx 性能 除了基本的功能外,还可以利用内置模块监控 Nginx 的性能表现。启用 HTTP stub status 模块可以帮助管理员实时掌握服务器负载情况[^5]。具体操作如下: - 修改 `nginx.conf` 文件,在某个现有的 `server {}` 块中加入以下内容: ```nginx location /nginx_status { stub_status; allow 127.0.0.1; # 允许本机访问 deny all; # 禁止外部访问 } ``` - 测试新配置的有效性后再重新加载服务: ```bash sudo nginx -t sudo systemctl reload nginx ``` 最后,通过浏览器访问 `http://localhost/nginx_status` 即可获取统计信息。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

surfirst

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

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

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

打赏作者

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

抵扣说明:

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

余额充值