本文分享的是前端如何修改nginx配置来调试测试环境
Nginx(发音为 “engine X”)是一款高性能的 开源 Web 服务器,同时也可作为 反向代理服务器、负载均衡器、HTTP 缓存 和 邮件代理服务器。由于其轻量级、高并发处理能力和低资源消耗,Nginx 被广泛用于现代互联网架构中,尤其适合高流量网站和分布式系统。
Nginx 的主要作用
-
Web 服务器(静态资源服务)
Nginx 最初设计用于高效处理静态文件(如 HTML、CSS、JS、图片等),相比传统服务器(如 Apache):
- 更低的资源消耗:采用事件驱动(Event-Driven)架构,单线程可处理数千并发连接。
- 更快的响应速度:优化了静态文件的传输效率,适合 CDN 和内容分发。
典型应用:
- 托管静态网站(如博客、官网)。
- 作为前端资源服务器(配合 React/Vue 等 SPA 应用)。
-
反向代理(Reverse Proxy)
Nginx 可以作为反向代理,接收客户端请求并转发给后端服务器(如 Tomcat、Node.js、PHP-FPM),再返回响应给用户。
核心优势:- 隐藏后端服务器:保护真实服务器 IP,提升安全性。
- 负载均衡:将流量分发到多个后端服务器(见下文)。
- 缓存加速:缓存动态内容,减少后端压力。
典型配置:
server { listen 80; server_name example.com; location / { proxy_pass http://backend_server; # 转发到后端 proxy_set_header Host $host; } }
-
负载均衡(Load Balancing)
Nginx 可以将流量均匀分配到多个后端服务器,提高系统的可用性和扩展性。
支持的均衡策略:- 轮询(Round Robin):默认方式,按顺序分配请求。
- 加权轮询(Weighted Round Robin):给性能更强的服务器更多流量。
- IP 哈希(IP Hash):同一用户始终访问同一服务器(适合 Session 保持)。
- 最少连接(Least Connections):优先分配给当前连接数最少的服务器。
典型配置:
upstream backend { server 192.168.1.1 weight=3; # 权重 3 server 192.168.1.2; server 192.168.1.3 backup; # 备用服务器 } server { location / { proxy_pass http://backend; } }
-
HTTP 缓存(加速动态内容)
Nginx 可以缓存后端动态生成的页面(如 API 响应),减少重复计算和数据库查询。
适用场景:- 高并发读多写少的场景(如新闻网站、商品详情页)。
- 缓解后端服务器压力。
典型配置:
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m; server { location / { proxy_cache my_cache; proxy_pass http://backend; proxy_cache_valid 200 302 10m; # 缓存 200/302 响应 10 分钟 } }
-
SSL/TLS 终止(HTTPS 加速)
Nginx 可以处理 HTTPS 加密/解密,减轻后端服务器的计算负担:
- 统一管理证书(如 Let’s Encrypt)。
- 支持 HTTP/2,提升页面加载速度。
典型配置:
server { listen 443 ssl; server_name example.com; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; location / { proxy_pass http://backend; } }
-
动静分离
将动态请求(如 API)和静态资源(如图片、CSS)分开处理:
- 静态资源由 Nginx 直接返回,动态请求转发给后端(如 Java/Python)。
典型配置:
server { location /static/ { alias /var/www/static/; # 直接返回静态文件 } location /api/ { proxy_pass http://backend; # 转发 API 请求 } }
-
其他用途
- 邮件代理(IMAP/POP3/SMTP)。
- WebSocket 代理(支持实时通信应用)。
- 访问控制(IP 黑白名单、限速)。
如何在VSCode中修改Nginx配置,步骤如下:
-
找到 Nginx 配置文件
Nginx 的配置文件通常位于:
- Linux/macOS:
/etc/nginx/nginx.conf
(主配置)或/etc/nginx/conf.d/
(子配置) - Windows:
C:\nginx\conf\nginx.conf
(默认安装路径)
如何快速定位 Nginx 配置文件?
-
在终端运行:
nginx -t
它会显示 Nginx 加载的配置文件路径,例如:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
- Linux/macOS:
-
在 VSCode 中打开 Nginx 配置文件
使用 VSCode 远程开发(推荐):
-
如果 Nginx 运行在远程服务器(如 Linux),可以:
-
安装 Remote - SSH 插件。
vscode通过
ctrl + shift + x
打开右侧的扩展,输入Remote - SSH
进行安装。安装完成后要重启vscode。安装成功后,右侧会有一个类似电脑的图标。 -
点击
电脑
图标,如下图所示 -
点击配置(齿轮)图标,添加服务
-
在打开的config文件中,输入目标服务的配置信息
-
配置完成后,就可以在SSH文件夹下看到
31服务器
和45服务器
,选择其中的一个服务,在新窗口建立连接
,选择Linus
,输入密码后,选择打开文件夹,在输入框输入想要访问的文件夹即可。例如:打开etc文件夹 -
打开后,找到
nginx文件夹
,打开nginx.conf
文件,此文件中就是对应项目的nginx配置信息。 -
完成配置修改后,执行的指令如下:
-
检查配置文件是否有语法错误: 在重新加载 Nginx 配置之前,最好检查配置文件是否有语法错误。使用以下命令来检查:
sudo nginx -t
如果一切正常,会显示类似以下的消息:
Copy Codenginx: configuration file /etc/nginx/nginx.conf test is successful
-
重新加载 Nginx 配置: 如果配置文件语法没有问题,可以使用以下命令来重新加载 Nginx 配置:
sudo systemctl reload nginx
或者使用:
sudo nginx -s reload
这样,Nginx 会应用对
nginx.conf
文件所做的修改,而无需重启整个 Nginx 服务。
-
-
-
-
修改 Nginx 配置
Nginx 配置采用 模块化结构,常见修改场景:
(1)配置静态网站
server { listen 80; # 监听 80 端口(HTTP) server_name example.com; # 域名 location / { root /var/www/html; # 网站根目录 index index.html; # 默认首页 } }
(2)配置反向代理(如转发到 Node.js/React/Vue)
server { listen 80; server_name api.example.com; location / { proxy_pass http://localhost:3000; # 转发到本地的 Node.js 服务 proxy_set_header Host $host; } }
(3)配置 HTTPS(SSL 证书)
server { listen 443 ssl; server_name example.com; ssl_certificate /etc/ssl/certs/example.com.crt; # 证书路径 ssl_certificate_key /etc/ssl/private/example.com.key; location / { root /var/www/html; index index.html; } }
(4)配置负载均衡
upstream backend { server 192.168.1.1:3000; # 后端服务器 1 server 192.168.1.2:3000; # 后端服务器 2 } server { listen 80; server_name example.com; location / { proxy_pass http://backend; # 请求转发到 upstream try_files $uri $uri/ /index.html; # 用于智能匹配请求资源的重要规则 } }