Nginx 正向代理和反向代理

简介: Nginx是一个轻量级的Web服务器,它使用少量的系统资源来处理大量的并发连接请求.....

博主介绍: ✌博主从事应用安全和大数据领域,有8年研发经验,5年面试官经验,Java技术专家✌

Java知识图谱点击链接:体系化学习Java(Java面试专题)

💕💕 感兴趣的同学可以收藏关注下不然下次找不到哟💕💕

image.png

1、为什么 Nginx 性能这么高

Nginx性能高的原因有以下几点:

  1. Nginx是一个轻量级的Web服务器,它使用少量的系统资源来处理大量的并发连接请求。

  2. Nginx采用了事件驱动模型,它使用异步非阻塞的方式处理请求,可以更好地利用系统资源。

  3. Nginx具有高度的可扩展性和灵活性,可以通过添加模块来扩展其功能。

  4. Nginx具有出色的负载均衡和反向代理功能,可以将请求分配到多个服务器上,从而提高性能和可靠性。

总之,Nginx通过优秀的架构设计和高效的算法实现了高性能和高可靠性,成为了Web服务器领域的佼佼者。

2、Nginx 正向代理和反向代理

Nginx既可以作为正向代理,也可以作为反向代理。正向代理和反向代理的区别在于代理的对象不同。

正向代理:客户端向代理服务器发送请求,代理服务器再向目标服务器发送请求,目标服务器返回响应给代理服务器,代理服务器再将响应返回给客户端。这时,客户端并不知道请求的目标服务器是哪个,只知道代理服务器的地址。

反向代理:客户端向目标服务器发送请求,但实际上请求被发送到了反向代理服务器上,反向代理服务器会根据配置的规则将请求转发给后端的目标服务器进行处理,再将处理结果返回给客户端。这时,客户端并不知道请求的目标服务器是哪个,只知道反向代理服务器的地址。

Nginx可以通过配置文件的方式实现正向代理和反向代理的功能。在配置文件中,通过proxy_pass指令指定代理服务器的地址和端口号,即可实现代理的功能。

3、Nginx 正向代理的配置

nginx.conf 配置正向代理:

http {
   
   
    # 定义正向代理服务器的地址和端口号
    upstream proxy_server {
   
   
        server 192.168.1.1:8080;
    }
     # 定义代理服务器的缓存
    proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=cache:10m inactive=60m;
     # 定义代理服务器的缓存时间
    proxy_cache_valid 200 60m;
     # 定义代理服务器的缓存大小
    proxy_cache_size 10m;
     # 定义代理服务器的缓存类型
    proxy_cache_key "$scheme$request_method$host$request_uri";
     # 定义代理服务器的缓存控制
    proxy_cache_bypass $http_pragma;
    proxy_cache_revalidate on;
    proxy_cache_min_uses 1;
     # 定义代理服务器的超时时间
    proxy_connect_timeout 30s;
    proxy_send_timeout 60s;
    proxy_read_timeout 60s;
     # 定义代理服务器的请求头
    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_hide_header X-Powered-By;
    proxy_hide_header Server;
     # 定义代理服务器的缓存控制头
    add_header Cache-Control "public, max-age=60, s-maxage=60";
     # 定义代理服务器的缓存控制头
    proxy_cache_lock on;
     # 定义代理服务器的缓存控制头
    proxy_cache_methods GET HEAD POST;
}
server {
   
   
    listen 80;
    server_name example.com;
     # 定义代理服务器的地址和端口号
    location / {
   
   
        proxy_pass http://proxy_server;
        proxy_cache cache;
        proxy_cache_key "$scheme$request_method$host$request_uri";
        proxy_cache_valid 200 60m;
        proxy_cache_bypass $http_pragma;
        proxy_cache_revalidate on;
        proxy_cache_min_uses 1;
    }
}

4、Nginx 配置反向代理

nginx.conf 配置反向代理:

http {
   
   
    # 定义后端服务器的地址和端口号
    upstream backend_server {
   
   
        server 192.168.1.1:8080;
    }
}
server {
   
   
    listen 80;
    server_name example.com;
    # 定义反向代理规则,将请求转发到后端服务器
    location / {
   
   
        proxy_pass http://backend_server;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

💕💕 本文由激流丶创作,原创不易,感谢支持!
💕💕喜欢的话记得点赞收藏啊!

目录
相关文章
|
2月前
|
监控 应用服务中间件 测试技术
确保正则表达式在 Nginx 代理中的准确性和稳定性
【10月更文挑战第19天】总之,正则表达式在 Nginx 代理中具有重要作用,但要确保其准确性和稳定性需要付出一定的努力和关注。通过以上方法的综合运用,我们可以提高正则表达式配置的可靠性,为用户提供更好的服务体验。
|
19天前
|
缓存 负载均衡 算法
如何配置Nginx反向代理以实现负载均衡?
如何配置Nginx反向代理以实现负载均衡?
|
24天前
|
存储 负载均衡 中间件
Nginx反向代理配置详解,图文全面总结,建议收藏
Nginx 是大型架构必备中间件,也是大厂喜欢考察的内容,必知必会。本篇全面详解 Nginx 反向代理及配置,建议收藏。
Nginx反向代理配置详解,图文全面总结,建议收藏
|
1月前
|
前端开发 应用服务中间件 定位技术
Nginx 如何代理转发传递真实 ip 地址?
【10月更文挑战第32天】
186 5
Nginx 如何代理转发传递真实 ip 地址?
|
1月前
|
应用服务中间件 API nginx
nginx配置反向代理404问题
【10月更文挑战第18天】本文介绍了使用Nginx进行反向代理的配置方法,解决了404错误、跨域问题和302重定向问题。关键配置包括代理路径、请求头设置、跨域头添加以及端口转发设置。通过调整`proxy_set_header`和添加必要的HTTP头,实现了稳定的服务代理和跨域访问。
201 1
nginx配置反向代理404问题
|
19天前
|
负载均衡 监控 应用服务中间件
配置Nginx反向代理时如何指定后端服务器的权重?
配置Nginx反向代理时如何指定后端服务器的权重?
33 4
|
19天前
|
安全 应用服务中间件 网络安全
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
42 3
|
19天前
|
安全 应用服务中间件 网络安全
配置Nginx反向代理实现SSL加密访问的步骤是什么?
我们可以成功地配置 Nginx 反向代理实现 SSL 加密访问,为用户提供更安全、可靠的网络服务。同时,在实际应用中,还需要根据具体情况进行进一步的优化和调整,以满足不同的需求。SSL 加密是网络安全的重要保障,合理配置和维护是确保系统安全稳定运行的关键。
72 3
|
19天前
|
缓存 负载均衡 安全
Nginx的反向代理具体是如何实现的?
Nginx的反向代理具体是如何实现的?
|
26天前
|
负载均衡 前端开发 JavaScript
Nginx 代理多服务
以上是 Nginx 代理多服务的几种常见方式,在实际应用中,可以根据具体的业务需求和系统架构选择合适的代理方式,并结合其他 Nginx 的功能和配置来优化和完善系统的性能和功能。