前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Web服务器-Nginx反向代理(一)

Web服务器-Nginx反向代理(一)

作者头像
运维小路
发布于 2025-04-05 06:14:54
发布于 2025-04-05 06:14:54
19400
代码可运行
举报
文章被收录于专栏:运维小路运维小路
运行总次数:0
代码可运行

作者介绍:简历上没有一个精通的运维工程师。下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

我们上一大章介绍了Kubernetes的知识,本章节我们进入中间件的讲解,这里会包含很多不同的类型组件,中间件的第一个大类我这里定义的是Web服务器。由于目前使用最广泛的Web服务器是Nginx,所以我们这里的讲解主要以Nginx服务器为主。

我们上一小节介绍了Nginx的配置文件以及配置文件包含一个静态网站,静态网站虽然正常的应用都有,但是Nginx的核心还是作为反向代理及负载均衡,代理后端的各种服务(Java,Go,Python等)。所以这个小节我们就来介绍如何配置反向代理。

我们上个小节介绍了Nginx的主配置文件,介绍他可以包含下面的文件,所以我们这里就在这个目录下创建一个配置文件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
include /etc/nginx/conf.d/*.conf;

反向代理配置核心指令

1. proxy_pass

功能:定义请求转发的目标地址,该配置必须有,其他配置都是属于可选的。

语法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
location / {
    proxy_pass http://backend_server;
}

2. proxy_set_header

功能:修改或添加请求头,确保后端服务器获取真实客户端信息,这里只列举了部分,实际上这个选项还有很多的。

常用配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

设置代理请求中的 Host 头部,确保后端服务器能正确识别目标主机,区分虚拟主机路由逻辑。后面2个都可以用于获取客户端IP,但是第一个只能获取单层代理,如果要多层则需要使用后一个。

3. 其他常用指令

proxy_connect_timeout:与后端服务器建立连接的超时时间。

proxy_read_timeout:等待后端响应的超时时间。

proxy_buffering:是否启用响应缓冲区(默认开启)。当然这里还有很多参数,除了第一个proxy_pass不能省略,其他都可以省略。

案例

我这里准备了一个使用python编写web的程序,提供了2个web接口,其中接口1会立即响应,而接口二则会延迟10秒才会响应,如果nginx的配置后端响应的时间下小于10秒则会请求失败,如果大于10秒则请求成功。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost conf.d]# cat web.conf 
server {
    listen 80;
    server_name 192.168.31.120;

    location / {
        proxy_pass http://192.168.31.121: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;
    }

    location /api2 {
        proxy_pass http://192.168.31.121:8080/api2; 
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;

        # 超时配置
        proxy_connect_timeout 15s;  # 连接后端超时
        proxy_read_timeout 5;     # 等待响应超时,由于后端会超时,所以这个接口会失败
        proxy_send_timeout 15s;     
    }

}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#Nginx的日志记录 
192.168.31.120 - - [01/Apr/2025:23:54:04 +0800] "GET / HTTP/1.1" 200 42 "-" "curl/7.29.0" "-"
192.168.31.120 - - [01/Apr/2025:23:54:23 +0800] "GET /api2 HTTP/1.1" 504 167 "-" "curl/7.29.0" "-"
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#后端服务的日志
#第二个接口是正常响应,但是超过nginx响应时间,所以客户并没有获得他要的数据
#如果这个请求是写请求,就可能出现数据异常。 
192.168.31.120 - - [01/Apr/2025 23:54:04] "GET / HTTP/1.0" 200 -
192.168.31.120 - - [01/Apr/2025 23:54:28] "GET /api2 HTTP/1.0" 200 -

通过我们的上面的例子我们的Nginx实现反向代理的服务,我们只需要保留一台对外服务器。然后然后通过请求该服务器,根据对应的配置他会根据具体的请求目的转发到不同的后端地址。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-04-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维小路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Web服务器-Nginx反向代理(二)
我们上一大章介绍了Kubernetes的知识,本章节我们进入中间件的讲解,这里会包含很多不同的类型组件,中间件的第一个大类我这里定义的是Web服务器。由于目前使用最广泛的Web服务器是Nginx,所以我们这里的讲解主要以Nginx服务器为主。
运维小路
2025/04/06
600
Web服务器-Nginx反向代理(二)
Web服务器-Nginx负载均衡
作者介绍:简历上没有一个精通的运维工程师,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。
运维小路
2025/04/07
2110
Web服务器-Nginx负载均衡
基于CentOS 7配置Nginx反向代理
Nginx作为反向代理服务器被广泛使用在各大互联网企业。它简单易用,可以根据业务的需求将其不同的业务类型代理至不同的服务器,将整个站点请求压力按类型分摊到不同的服务器。该方式使的整个站点请求性能得以极大的提升。本文简要描述了Nginx几种不同情形的代理演示,供大家参考。
Leshami
2018/08/06
2.2K0
基于CentOS 7配置Nginx反向代理
nginx反向代理
客户端发出请求到代理服务器上,然后代理服务器帮他去后台请求资源,客户端认为代理服务器就是原始的web服务。然后由反向代理服务器去帮他请求资源。
张琳兮
2019/03/14
9910
nginx反向代理
Nginx反向代理配置
反向代理(Reverse Proxy)是一种网络服务器的部署模式,其代理请求的方向与正常的代理服务器相反,即客户端发送请求时,请求先到达反向代理服务器,然后再由反向代理服务器将请求转发到目标服务器,最后将响应发送回客户端。
灬沙师弟
2023/07/08
1.1K0
Nginx反向代理配置
Nginx - 反向代理、缓存详解
本篇博客对配置Nginx的第二篇,主要介绍Nginx设置反向代理、缓存、和负载均衡三个知识点,在之前的生产实践中遇到的问题进行归纳和总结,分享出来,以方便同学们有更好的成长。
stark张宇
2024/08/25
1.5K1
Web服务器-Nginx正向代理和4层代理
作者介绍:简历上没有一个精通的运维工程师。下面的思维导图也是预计更新的内容和当前进度(不定时更新)。
运维小路
2025/04/10
1080
Web服务器-Nginx正向代理和4层代理
第四章·Nginx反向代理服务
-多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。 -擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。 4)Git、Jenkins自动化代码上线及自动化测试平台。 5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。
DriverZeng
2022/09/26
5290
第四章·Nginx反向代理服务
Nginx以HTTP协议反向代理HTTPS服务
简单记录一下 Nginx 作为反向代理,以 HTTP 协议向下游客户端代理基于Spring Security 实现的HTTPS 服务时遇到的问题及解决办法。
dhyuan
2022/05/30
15.9K0
Nginx以HTTP协议反向代理HTTPS服务
探索Nginx:强大的开源Web服务器与反向代理
随着互联网的飞速发展,Web服务器在现代技术架构中扮演着至关重要的角色。Nginx(发音为“engine x”)是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。Nginx因其卓越的性能、稳定性和灵活性,受到了众多开发者和系统管理员的青睐。本文将介绍Nginx的基本概念和常见用法,帮助读者更好地理解和使用它。
用户8909609
2024/02/13
2700
nginx反向代理配置详解
查看本篇文章链接:https://bt.ciilii.com/show/news-6.html
西里网
2025/03/06
3450
05 . Nginx的反向代理与负载均衡
Nginx负载均衡 客户端的访问都被代理到后端的一台服务器上,最终会出现性能瓶颈,从而导致效率降低,前端用户的访问速度急速下降,要解决这个问题就需要添加多台httpd,同时承受大量并发连接,每台服务器接收的并发连接降低了,效率就高了,nginx作为代理,在收到客户端的请求时,会分发到不同的后端服务器,但是nginx收到请求之后会分配到那个服务器之上,有什么规律和需求,就需要用调度算法来分配. upstream语法 # upstream的定义必须在server{..}外定义 upstream <组名
iginkgo18
2020/09/27
8810
Nginx Porxy反向代理
我这里有个例子,早期的WEB服务器使用的是HTTP/1.0协议,是不支持keep-alive功能的,为了解决这个问题当时主流的解决方案是使用nginx做反向代理(支持HTTP/1.1当时优势之一),为客户端浏览器链接HTTP/1.1,并为后端WEB服务器链接HTTP/1.0,经过nginx代理后就可以愉快的使用keep-alive功能了。
用户1560186
2019/11/19
1.1K0
反向代理
代理在网络中使用是比较常见的,比如我们说的最多的就是翻墙软件,比如ss、蓝灯等这些大家常用的软件,他们就是能改代理大家访问国内无法访问的一些国外网站,比如facebook、YouTube等网站。其原理也比较简单:
星哥玩云
2022/09/15
1.3K0
反向代理
Nginx - 深入了解 正向代理vs反向代理 、负载均衡算法 、 缓存策略
Nginx是一款高性能的HTTP服务器和反向代理服务器。代理服务器(Proxy Server)在客户端和目标服务器之间充当中介,其主要作用包括负载均衡、缓存、内容过滤和安全增强等。
小小工匠
2024/05/26
1.9K0
通过Nginx实现反向代理
Nginx 可以通过配置来实现反向代理,将客户端的请求转发到后端的应用服务器。以下是一个简单的示例,演示如何在 Nginx 中实现反向代理:
孟斯特
2023/10/19
1.6K0
通过Nginx实现反向代理
Nginx-正反向代理及负载均衡
目录 正/反向代理 代理的方式 Nginx代理服务支持的协议 代理实战 部署web01 部署Lb01 Nginx代理常用参数 添加发往后端服务器的请求头信息 代理到后端的TCP连接、响应、返回等超时时间 proxy_buffer代理缓冲区 配置代理优化文件 负载均衡 负载均衡的架构 负载均衡的实现 连接池 实现步骤 负载均衡的比例 轮询 权重 ip_hash 负载均衡后端状态 down backup max_fails、fail_timeout proxy_next_upstream监控的错误类型 负载均衡
HammerZe
2022/03/25
4890
Nginx-正反向代理及负载均衡
nginx反向代理配置详解
西里网
2025/03/23
2110
深入解析NGINX反向代理
在本文中,我们将深入探讨NGINX反向代理的工作原理、配置方法以及它在现代Web架构中的作用。文章将包括实际的代码示例和详细的使用场景,以确保读者能够充分理解并应用所学知识。
炒香菇的书呆子
2023/12/15
4K0
Web服务器-Nginx流量镜像(Mirror)
我们上一大章介绍了Kubernetes的知识,本章节我们进入中间件的讲解,这里会包含很多不同的类型组件,中间件的第一个大类我这里定义的是Web服务器。由于目前使用最广泛的Web服务器是Nginx,所以我们这里的讲解主要以Nginx服务器为主。
运维小路
2025/04/13
940
Web服务器-Nginx流量镜像(Mirror)
相关推荐
Web服务器-Nginx反向代理(二)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验