Nginx反向正向代理

本文介绍了Nginx作为高性能HTTP和反向代理服务器的特点和优势,详细阐述了反向代理和正向代理的概念和区别,并通过实际操作展示了Nginx的开启、配置及应用,包括反向代理配置和Nginx在Tomcat集群部署中的负载均衡策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Nginx简介

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。
其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

二、Nginx特点

  1. nginx是非常优秀的反向代理服务器.
  2. 占用内存少 不到2M tomcat服务器占用多大内存 200M左右
  3. 并发(负载)能力强 3-5万次/秒
  4. tomcat服务器并发能力 250-500次/秒
  5. 调优之后可以实现1000次/秒
  6. nginx可以当作负载均衡服务器使用.

三、反向代理机制

        反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。

特点

  1. 反向代理服务器位于用户和服务器之间.
  2. 用户访问反向代理服务器,就可以获取真实的资源.
  3. 反向代理机制 用户无需了解真实的服务器信息.
  4. 反向代理保护了服务器端信息,也称之为服务器端代理

图示:

### Nginx 正向代理反向代理的区别 Nginx 支持以正向代理反向代理两种模式工作。在这两种模式下,尽管都涉及到客户端、代理服务器和目标服务器三个角色,但其工作机制和服务目的存在显著差异。 #### 正向代理的特点 在正向代理环境中,客户端需显式配置代理服务器的信息(IP 地址或域名),通过该代理发起对外部资源的请求。这种方式允许企业内部员工安全地访问互联网资源的同时,也便于实施统一的安全策略管理[^4]。 #### 反向代理的特点 相比之下,在反向代理场景里,客户端并不知晓实际提供服务的目标服务器的存在;相反,它们认为自己正在直接连接至反向代理本身。这种设计隐藏了后端架构细节,增强了系统的安全性与灵活性。当客户端发出HTTP 请求时,这些请求会被转发给合适的后端服务器处理后再返回响应结果给原始请求者[^3]。 --- ### 配置实例展示 #### 正向代理配置样例 为了使 Nginx 成为一台有效的正向代理设备,可以在 `http` 块内加入如下指令: ```nginx http { ... server { listen 80; location / { resolver 8.8.8.8; # DNS 解析器 proxy_pass http://$http_host$request_uri; # 设置 HTTP 头信息以便于追踪原始 IP 和其他元数据 proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } } ``` 此段代码定义了一个监听于标准 Web 端口 (80) 的虚拟主机,并利用 `$http_host` 和 `$request_uri` 动态构建上游 URL 来实现透明化代理功能[^1]。 #### 反向代理配置示例 下面是一个简单的反向代理设置例子,用于将来自特定路径 `/api/` 下的所有流量重定向到另一台运行 API 应用程序的服务器上: ```nginx http { ... upstream api_backend { server backend.example.com weight=5 max_fails=3 fail_timeout=30s; } server { listen 80; location /api/ { proxy_pass http://api_backend/; # 转发必要的头部字段 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_set_header X-Forwarded-Proto $scheme; } } } ``` 这里创建了一个名为 `api_backend` 的负载均衡池,并指定了一个默认成员。随后,在匹配规则中指定凡是符合 `/api/*` 模式的 URI 将被送往上述定义好的集群进行进一步处理[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值