Nginx系列之反向代理相关模块

##一、ngx_http_proxy_module模块 主要提供反向代理及缓存功能;

千山网站建设公司创新互联,千山网站设计制作,有大型网站制作公司丰富经验。已为千山成百上千家提供企业网站建设服务。企业网站搭建\外贸网站制作要多少钱,请找那个售后服务好的千山做网站的公司定做!

###1、proxy_pass指令

该指令用来设置被代理服务器的地址,可以是主机名称,IP地址加端口号等形式。 配置格式:

Syntax: proxy_pass URL; Default: — Context: location, if in location, limit_except

注意:proxy_pass后面的路径不带uri时,其会将location的uri传递给后端主机;

示例:

location /bbs/ { proxy_pass http://192.168.1.141; } # 访问http://www.codegreen.cn/bbs/此时后端节点收到的请求就是http://192.168.1.141/bbs/

注意:proxy_pass后面是一个uri时,其会将location中的uri替换为后端主机的uri;

示例:

location /bbs/ { proxy_pass http://192.168.1.141/www/; }

注意:如果location定义其uri时使用了正则表达式匹配机制,则proxy_pass后的路径必须不能使用uri;

示例:

location ~* .php$ { proxy_pass http://192.168.1.141; }

注意:http://192.168.1.141后面一定不能加斜线"/" ###2、proxy_set_header指令

设定向后端主机发送请求报文的首部及其值; 配置格式:

Syntax: proxy_set_header field value; Default: proxy_set_header Host $proxy_host; proxy_set_header Connection close; Context: http, server, location

示例:

# 设置向后端服务器发送的客户端IP地址,用于让后端服务器获取用户真实的IP地址 proxy_set_header X-Real-IP $remote_add; proxy_set_header X-Forward-For $remote_add; # 设置向后端服务器发送请求报文中的主机名 proxy_set_header Host $host;

###3、proxy_cache_path指令

定义缓存,只能用于http上下文;

注意:当后端存在多个虚拟主机时,必须为每个虚拟主机单独使用一个缓存。

配置格式:

proxy_cache_path path [levels=levels] keys_zone=name:size [inactive=time] [max_size=size] path:定义缓存数据存放的根目录,改路径应该是预先存在于磁盘上的。 evels:设置缓存目录的层级结构。 keys_zone=name:size:name设定缓存区域的名称自定义,size表示使用多大的内存空间缓存; inactive=time:设置缓存超时时长; max_size=size:设置数据在磁盘中可使用的空间,超过此空间将使用LRU最近最少使用算法删除缓存;

示例:

proxy_cache_path /var/cache/nginx/proxy levels=2:1 keys_zone=pcache:10m max_size=1g;

###4、proxy_cache指令

调用缓存,默认为off;

注意:当后端存在多个虚拟主机时必须为每个虚拟主机单独使用一个缓存。

配置格式:

Syntax: proxy_cache zone | off; Default: proxy_cache off; Context: http, server, location

示例:

proxy_cache pcache;

###5、proxy_cache_key指令

定义缓存键; 配置格式:

Syntax: proxy_cache_key string; Default: proxy_cache_key $scheme$proxy_host$request_uri; Context: http, server, location

###6、proxy_cache_valid指令

为不同的响应码设置不同的缓存时长; 配置格式:

Syntax: proxy_cache_valid [code ...] time; Default: — Context: http, server, location

示例:

proxy_cache_valid 200 301 302 10m; proxy_cache_valid 404 1m;

###7、proxy_read_timeout指令

等待后端服务器发送响应报文的超时时长,默认为60秒。当后端服务器特别繁忙,请求处理不过来超出此处设置的时长时nginx反向代理就会返回给用户502的错误; 配置格式:

Syntax: proxy_read_timeout time; Default: proxy_read_timeout 60s; Context: http, server, location

###8、proxy_connect_timeout指令

与后端服务器建立连接的超时时长;默认为60秒;最长为70秒;

配置格式:

Syntax: proxy_connect_timeout time; Default: proxy_connect_timeout 60s; Context: http, server, location

###9、proxy_send_timeout指令

向后端服务器发送请求报文的超时时长;默认60秒。

配置格式:

Syntax: proxy_send_timeout time; Default: proxy_send_timeout 60s; Context: http, server, location

##二、ngx_http_headers_module模块 用于在响应给客户端报文中添加首部;

###1、add_header指令

向响应报文添加自定义首部,并赋值。

配置格式:

Syntax: add_header name value [always]; Default: — Context: http, server, location, if in location

示例:

# 向响应客户端报文首部添加服务器地址; add_header X-Via $server_addr; # 如果代理服务器配置的缓存,向客户端展示缓存命中与否 add_header X-Cache $upstream_cache_status;

###2、expires指令

用于添加Expires及Cache-Control首部或修改首部的值; 配置格式:

Syntax: expires [modified] time; expires epoch | max | off; Default: expires off; Context: http, server, location, if in location

##三、ngx_http_upstream_module模块 将多个后端主机定义为服务器组,而后可由proxy_pass,fastcgi_pass,memcached_pass等调用;

###1、upstream指令

定义后端服务器组,引入新的上下文,只能用在http上下文; 配置格式:

Syntax: upstream name { ... } Default: — Context: http name:名称,直接字符串;

###2、server指令

定义服务器的地址和相关的参数;只能用于upstream上下文;

配置格式:

Syntax: server address [parameters]; Default: — Context: upstream

地址的格式:

IP[:port] HOSTNAME[:port] unix://PATH/TO/SOME_SOCK_FILE

参数:

weight=number:服务器主机权重; max_fails=number:失败尝试次数; fail_timeout=time:设置服务器被识别为不可用的超时时长; backup:标记为备用主机,只有当所有server不可用时才使用; down:手动标记其不在处理任何用户请求,可实现代码灰度发布。

###3、ip_hash指令

设置源地址哈希调度算法;

Syntax: ip_hash; Default: — Context: upstream ``` ###4、least-conn指令 最少连接调度算法; 配置格式: ``` Syntax: least_conn; Default: — Context: upstream This directive appeared in versions 1.3.1 and 1.2.2. ``` ###5、keepalive指令 指明多少个连接使用keepalive;通常后端有多少台主机就给多少; 配置格式: ``` Syntax: keepalive connections; Default: — Context: upstream This directive appeared in version 1.1.4. ``` 示例: ``` keepalive 4; ```

分享名称:Nginx系列之反向代理相关模块
路径分享:https://www.cdcxhl.com/article14/cpscde.html

成都网站建设公司_创新互联,为您提供网站营销品牌网站制作网站设计公司做网站定制网站自适应网站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

搜索引擎优化