网站首页 > 技术文章 正文
关注△mikechen△,十余年BAT架构经验倾囊相授!
大家好,我是mikechen睿哥。
Nginx反向代理作为构建现代Web架构的基石技术,在大型架构发挥着至关重要的作用@mikechen
Nginx反向代理基础配置
最简单且最典型的反向代理场景,用户请求先到达Nginx服务器,再由Nginx转发至后端的应用服务器(如Tomcat、Node.js等)。
这种方式可以隐藏后端服务器地址,增强系统安全性,同时可进行请求过滤和负载分担。
配置示例:
假设后端服务地址为http://127.0.0.1:8080。
server { listen 80; server_name example.com; location /{ proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}}
重点解析:
- proxy_pass
- :指定请求应转发到的后端服务器地址。
- proxy_set_header
- :传递Host和客户端真实IP,确保后端能够获取到正确请求信息。
- 监听80端口,用于HTTP请求。
使用价值:
简单直观,适合单一后台应用,快速搭建反向代理。
配置HTTPS反向代理
场景说明:我 们的站点需要安全通信,使用HTTPS协议。
Nginx作为反向代理终端接受HTTPS请求,解密后转发给后端HTTP应用服务器,是常见的做法。
配置示例:
假设证书文件路径为/etc/nginx/ssl/server.crt和/etc/nginx/ssl/server.key,后端仍为http://127.0.0.1:8080。
server { listen 443 ssl; server_name example.com; ssl_certificate /etc/nginx/ssl/server.crt; ssl_certificate_key /etc/nginx/ssl/server.key; ssl_protocols TLSv1.2TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; location /{ proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}} # 可选:将HTTP请求重定向至HTTPSserver { listen 80; server_name example.com; return301 https://$host$request_uri;}
重点解析:
- listen 443 ssl;
- 监听443端口并启用SSL。
- 配置证书路径及SSL协议、加密套件。
- HTTP请求重定向至HTTPS,强制安全访问。
- 反向代理配置与HTTP相同,但请求经Nginx时已完成解密。
使用价值:
保障通信安全,适合需要TLS加密的线上应用环境。
负载均衡反向代理配置
场景说明:
当单台后端服务器难以承载大量流量时,可以用Nginx将请求分发到多台后端服务器,实现负载均衡,提升系统稳定性和响应速度。
配置示例:
假设后端有两台服务器,IP分别为192.168.1.101:8080和192.168.1.102:8080。
upstream backend_servers { server 192.168.1.101:8080 weight=3; server 192.168.1.102:8080 weight=1;} server { listen 80; server_name example.com; location /{ proxy_pass http://backend_servers; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}}
重点解析:
- upstream
- 定义后端服务器组,支持权重调节、健康检查(通过第三方模块或Nginx Plus)。
- 通过proxy_pass指向负载均衡组。
- 权重参数(weight)控制请求在各服务器间的分配比例。
使用价值:
适合高并发场景,提升后端服务弹性和容错能力。
动静分离反向代理配置
场景说明:
前端项目大量包含静态资源(如图片、CSS、JS),而动态请求由后端程序处理。
通过Nginx配置动静分离,静态资源直接由Nginx处理,提升访问速度,减轻后端压力。
配置示例:
项目目录中/static存放静态资源,后端应用监听127.0.0.1:8080。
server { listen 80; server_name example.com; # 静态资源请求直接由Nginx处理 location /static/{ root /var/www/html; expires 30d; add_header Cache-Control"public";} # 动态请求反向代理至后端应用 location /{ proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}}
重点解析:
- /static/
- 路径下静态资源通过root指令直接从本地磁盘读取,开启浏览器缓存。
- 根路径其余请求全部转发至后端处理。
- 动静分离减少网络请求和后端负载。
使用价值:
提升资源加载性能,改善用户体验,降低后端服务器运行压力。
以上
本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。
猜你喜欢
- 2025-06-13 Linux 上利用Nginx代理uWSGI处理Flask web应用
- 2025-06-13 如何隐藏代理器服务地址?企业级IP匿名化与反追踪技术
- 2025-06-13 宝塔面板使用Nginx反向代理解决跨域问题
- 2025-06-13 海尔集团武汉中心总经理孙梁君——以智慧家电 升级品质生活
- 2025-06-13 给小白的 Nginx 10分钟入门指南(nginx入门教程)
- 2025-06-13 反向代理以及其使用场景(反向代理啥意思)
- 2025-06-13 Vue炼金术:解锁前端开发的进阶之道
- 2025-06-13 93.8k Star 的内网穿透神器 frp:DIY开发者必备的反向代理
- 2025-06-13 Nginx正向代理、反向代理、负载均衡及性能优化
- 2025-06-13 深入理解跨域及常见误区揭秘(深入理解跨域及常见误区揭秘论文)
你 发表评论:
欢迎- 518℃Oracle分析函数之Lag和Lead()使用
- 517℃几个Oracle空值处理函数 oracle处理null值的函数
- 511℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 502℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 497℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 488℃【数据统计分析】详解Oracle分组函数之CUBE
- 469℃Oracle有哪些常见的函数? oracle中常用的函数
- 467℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端富文本编辑器 (47)
- 前端路由 (61)
- 前端数组 (73)
- 前端排序 (47)
- 前端定时器 (47)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle的函数 (57)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)