一次说清-Nginx反向代理及参数配置

这篇具有很好参考价值的文章主要介绍了一次说清-Nginx反向代理及参数配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

我们在配置服务时常常会用到Nginx来设置反向代理,虽然常用,但是我们真的了解各个参数的意思吗?

不如我们一起来看下吧。

1、反向代理

反向代理(reverse proxy)方式是指用代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络中的上游服务器,并将从上游服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外表现局势一个web服务器。

2、Nginx反向代理

Nginx的反向代理,当用户发送一个HTTP请求时,Nginx不会立刻转发到上游服务器,而是先把用户的请求(包括HTTP包体)完整地接收到Nginx所在的服务器的磁盘或内存中,然后再向上游服务器发起连接,把缓存的客户端请求转发到上游服务器。

优点:降低上游服务器的负载,尽量把压力放在Nginx服务器上

缺点:延长了一个请求的处理时间,并增加了用于缓存请求内容的内存和磁盘空间。

nginx 参数传递,nginx,服务器,网络

3、负载均衡的基本配置

3.1 upstream

语法:upstream name{......};

配置块:http

upstream块定义了一个上游服务器的集群,便于反向代理中的proxy_pass使用。

 

ini

复制代码

upstream backend { server backend1.example.com; server backend2.example.com; server backend3.example.com; } server { location / { proxy_pass http://backend; } }

3.2 server

语法:server name[parameters];

配置块:upstream

server指定一台上游服务器的名字,该名字可以是域名、ip地址端口、UNIX句柄等,后面可跟参数:

.weight=number:设置向这台上游服务器转发的权重,默认是1。

.max_fails=number:该选项与fail_timeout配合使用,指在fail_timeout时间段内,如果向当前的上游服务器转发失败次数超过number,则认为在当前的fail_timeout时间段内这台上游服务器不可用。max_fail默认为1,如果设置为0,表示不检查失败次数。

.fail_timeout=time:fail_timeout表示该时间段内转发失败多少次后认为上游服务器暂时不可用,用于优化反向代理功能。它与向上游服务器建立连接的超时时间、读取上游服务器的响应超时时间等完全无关。默认为10s。

.down:表示所有的上游服务器永久下线,只在使用ip_hash配置项时才有用。

.backup:在使用ip_hash配置项时它是无效的。表示所在的上游服务器只是备份服务器,只有在所有的非备份上游服务器都失效后,才会向所在的上游服务器转发请求。

 

ini

复制代码

upstream backend { server backend1.example.com weight=5; server 127.0.0.1:8080 max_fails=3 fail_timeout=30s; server unix:/tmp/backend3; }

3.3 ip_hash

语法:ip_hash;

配置块:upstream

ip_hash是某个用户的请求始终落在固定的一台上游服务器上。它根据用户端的ip计算出一个key,将key按照upstream集群里的上游服务器数量进行取模,然后以取模后的结果把请求转发到相应的上游服务器中,这样确保了同一个客户端的请求只会转发到指定的上游服务器中。

ip_hash与weight(权重)配置不可同时使用。如果upstream中一台服务器不能使用时,不能直接删除,而是使用down标识,来确保转发策略的一惯性。

 

ini

复制代码

upstream backend { ip_hash; server backend1.example.com; server backend2.example.com; server backend3.example.com down; server backend4.example.com; }

4、反向代理的基本配置

1、proxy_pass

语法:proxy_pass URL;

配置块:location、if

将当前请求反向代理到URL参数指定的服务器上,URL可以是主机名或IP地址+端口。

 

bash

复制代码

location / { proxy_pass http://localhost:8000/uri }

默认情况下反向代理是不会转发请求中的Host头部的,如需转发需加上配置:proxy_set_header Host $host;

2、proxy_method

语法:proxy_method [GET/POST/DELETE/UPDATE/......];

配置块:http、server、location

表示转发时的协议方法名。

 

ini

复制代码

proxy_method POST;

3、proxy_hide_header

语法:proxy_hide_header the_header;

配置块:http、server、location

Nginx将上游服务器的响应转发给客户端,但默认不会转发:Date、Server、X-Pad和X-Accel-*。使用proxy_hide_header后可以任意地指定哪些HTTP头部字段不能被转发。

4、proxy_pass_header

语法:proxy_pass_header the_header

配置块:http、server、location

与proxy_hide_header功能相反,将原来禁止转发的header设置为允许转发。

5、proxy_pass_request_body

语法:proxy_pass_requst_body on|off;

默认:proxy_pass_request_body on;

配置块:http、server、location

表示确定是否向上游服务器发送HTTP包体部分。

6、proxy_pass_request_headers

语法:proxy_pass_request_headers on|off;

默认:proxy_pass_request_headers on;

配置块:http、server、location

作用为确定是否转发HTTP头部

7、proxy_redirect

语法:proxy_redirect[default|off|redirect replacement];

默认:proxy_redirect default;

配置块:http、server、location

当上游服务器返回的响应是重定向或刷新(如301或302)请求时,proxy_redirect可以重设http头部的location或refresh字段。

 

bash

复制代码

proxy_redirect http://localhost:8000/two/ http://frontendone;

上述代码如果上游服务器返回302,location字段的URL是http://localhost:8000/two/some/uri/ 转发给客户端的location就是:http://frontendonesome/uri/

.replacement:可以省略replacement参数中的主机名部分,此时会用虚拟主机名称来填充。

.off:将使location或refresh字段维持不变。

.default:按照proxy_pass配置项和所属的location配置项重组发往客户端的location头部。

 

bash

复制代码

location one { proxy_pass http://upstream:port/two/; proxy_redirect default; } location one { proxy_pass http://upstream:port/two/; proxy_redirect http://upstream:port/two/one; }

上述两种配置效果一样。

8、proxy_next_upstream

语法:proxy_next_upstream[error|timeout|invalid_header|http_500|http_502|http_503|http_504|http_404|off];

默认:proxy_next_upstream error timeout;

配置块:http、server、location

表示当向一台上游服务器转发请求出现错误时,继续换一台上游服务器处理这个请求。

proxy_next_upstream参数则说明在哪些情况下会继续选择下一台上游服务器转发请求:

.error:当向上游服务器发起连接、发送请求、读取响应时出错。

.timeout:发送请求或读取响应时发生超时。

.invalid_header:上游服务器发送的响应是不合法的。

.http_500:上游服务器返回的响应码是500。

.http_502:上游服务器返回的响应码是502。

.http_503:上游服务器返回的响应码是503。

.http_504:上游服务器返回的响应码是504。

·http_404:上游服务器返回的HTTP响应码是404。

.off:关闭proxy_next_upstream功能-出错就选择另一台上游服务器再次转发。

上述就是我整理的一些Nginx反向代理的参数信息,希望对大家有所帮助,谢谢。

作者:抢老婆酸奶的小肥仔
链接:https://juejin.cn/post/723840167104587372文章来源地址https://www.toymoban.com/news/detail-652746.html

到了这里,关于一次说清-Nginx反向代理及参数配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Nginx-反向代理(配置教程)

     反向代理的作用 1、解决网站服务器对外可见的问题、私密性、安全性 2、路由功能:根据用户请求的URI调度到对应功能的节点处理请求 3、负载均衡:将用户的请求,通过调度算法挑选一台合适的节点处理请求 4、动静分离:根据用户请求的URI进行区分,将动态资源调度到应

    2024年02月13日
    浏览(41)
  • Linux配置nginx反向代理

    在云服务器上部署高并发的服务,使用Nginx作为反向代理是一种常见的做法,可以实现流量分发、负载均衡,同时提升系统的可靠性和性能。 步骤概览: 安装Nginx: 确保服务器已安装Nginx。若未安装,可使用适用于你服务器系统的包管理工具(如apt或yum)进行安装。 配置负载

    2024年02月11日
    浏览(42)
  • Nginx配置反向代理实例二

    Mac 安装Nginx教程 Nginx配置反向代理实例一 提醒一下:下面实例讲解是在Mac系统演示的; 反向代理实例二实现的效果 使用nginx 反向代理,根据访问的地址跳转到不同端口的服务中 nginx 监听端口为81; 访问地址1:http://192.168.0.101:81/test/a8080.html 直接跳转到http://127.0.0.1:8080 访问地

    2024年01月23日
    浏览(43)
  • nginx配置例子-反向代理实现

    4.1 反向代理实现(实例1) 4.1.1需要实现的效果 (1)打开浏览器,在浏览器地址栏输入地址 www.123.com,跳转到liunx.系统tomat主页面中 4.1.2 准备工作 (1)在liunx, 系统安装 tomcat, 使用默认端口8080. tomcat安装文件放到 liunx系统中,解压。 (安装前,可以使用java -version 查 jdk 是否安装,

    2024年02月15日
    浏览(38)
  • Nginx配置反向代理实例一

    Mac 安装Nginx教程 提醒一下:下面实例讲解是在Mac系统演示的; 反向代理实例一实现的效果 在浏览器地址栏输入www.testproxy.com, 跳转到系统Tomcat主页面。 第一步:在系统的 hosts 文件进行ip和域名对应关系的配置。 Mac 系统修改Hosts文件的方法 : 打开在访达 按住command + shift +

    2024年02月03日
    浏览(34)
  • Nginx配置WebSocket反向代理

    ​ WebSocket协议相比较于HTTP协议成功握手后可以多次进行通讯,直到连接被关闭。但是WebSocket中的握手和HTTP中的握手兼容,它使用HTTP中的Upgrade协议头将连接从HTTP升级到WebSocket。这使得WebSocket程序可以更容易的使用现已存在的基础设施。 $ vim /usr/local/nginx/conf/nginx.conf (nginx配置

    2024年02月07日
    浏览(46)
  • nginx进行反向代理的配置

    要在nginx中进行反向代理,可以按照以下步骤进行操作: 打开nginx配置文件,通常在/etc/nginx/nginx.conf中。 找到http段,添加以下内容: 在上面的配置中,我们定义了一个名为example.com的虚拟主机,它将监听端口80。在location /段中,我们将请求代理到本地主机的端口3000上。注意

    2024年02月14日
    浏览(38)
  • Nginx反向代理配置模块详解

    随着互联网的发展,Web 应用越来越广泛,随之而来的是对 Web 服务器的高并发、高可用、高性能等需求的日益增长。Nginx 作为一个高性能的 HTTP 和反向代理服务器,由于其出色的性能和稳定性,越来越受到人们的青睐。本篇文章将详细讲解 Nginx 中的反向代理功能及其配置方法

    2024年01月23日
    浏览(36)
  • 【Nginx笔记01】Nginx配置文件介绍、反向代理、负载均衡

    这篇文章,主要介绍Nginx配置文件介绍、反向代理、负载均衡。 目录 一、nginx介绍 1.1、配置文件 1.2、反向代理 1.3、负载均衡 nginx配置文件是位于【conf】目录下的【nginx.conf】文件,这个文件中有三大部分组成,分别是:全局块、events块、http块。 全局块:定义一些全局变量,

    2023年04月23日
    浏览(43)
  • Linux-nginx(安装配置nginx、配置反向代理、Nginx配置负载均衡、动静分离)

    关于代理 正向代理: 客户明确知道自己访问的网站是什么 隐藏客户端的信息 目录 关于代理 一、Nginx的安装与配置 1、安装依赖 2、安装nginx (1)上传压缩包到目录 /usr/nginx里面 (2)解压文件 (3)进入到nginx的文件夹下面 进行默认的配置  ./configure (4) Make make install (5)

    2024年01月21日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包