当前位置:首页 > 技术文章 > 正文内容

nginx 代理设置一 之常见的设置(nginx代理zabbix)

arlanguage3个月前 (01-31)技术文章18

1、nginx代理配置 proxy_pass

server {
	listener 8099;

 location = /test {
		proxy_pass http://192.168.18.132:9010;
	} 
}

2、nginx 代理中设置请求头 proxy_set_header

server {
	listener 8099;
	
 	location = /test {
			proxy_pass http://192.168.18.132:9010;
  		# 设置请求头
  		proxy_set_header Host $proxy_host;
	} 
}

3、nginx 反向代理中设置请求超时时间 proxy_send_timeout

server {
	listener 8099;
  
 	location = /test {
			proxy_pass http://192.168.18.132:9010;
  		# 设置请求头
  		proxy_set_header Host $proxy_host;
  		# 设置请求超时时间  默认是60s
      proxy_send_timeout 30s;
	} 
}

4、nginx反向代理中设置 请求响应超时时间 proxy_read_timeout

server {
listener 8099;
  			
 location = /test {
			proxy_pass http://192.168.18.132:9010;
  		# 设置请求头
  		proxy_set_header Host $proxy_host;
  		# 设置请求超时时间  默认是60s
      proxy_send_timeout 30s;
  		# 设置请求响应超时时间 默认是60s
  		proxy_read_timeout 10s;
	} 
}

5、nginx反向代理中设置 允许的响应头 proxy_pass_header 和 需要隐藏的响应头 proxy_hide_header

server {
listener 8099;
  			
 location = /test {
		proxy_pass http://192.168.18.132:9010;
  
  	# 设置请求头
  	proxy_set_header Host $proxy_host;
  
  	# 设置请求超时时间  默认是60s
    proxy_send_timeout 30s;
  
  	# 设置请求响应超时时间 默认是60s
  	proxy_read_timeout 10s;
  	
  	proxy_pass_header xxxx;  # 放行
    proxy_hide_header abc;   # 隐藏
	} 
}

6、重新设置cookie的path proxy_cookie_path

server {
listener 8099;
  
 location = /test {
	 proxy_pass http://192.168.18.132:9010;
  
   # 设置请求头
   proxy_set_header Host $proxy_host;
  
   # 设置请求超时时间  默认是60s
   proxy_send_timeout 30s;
  
   # 设置请求响应超时时间 默认是60s
   proxy_read_timeout 10s;
   
   proxy_pass_header xxxx;  # 放行
   proxy_hide_header abc;   # 隐藏
              
   proxy_cookie_path /user/ /;  #意味着 path=/user/some/uri/ 改成 path=/some/uri/
	} 
}

7、设置cookie 的属性 proxy_cookie_flags(1.19.3以上版本才有)

server {
	listener 8099;
  			
 	location = /test {
			proxy_pass http://192.168.18.132:9010;
  
  		# 设置请求头
  		proxy_set_header Host $proxy_host;
  
  		# 设置请求超时时间  默认是60s
      proxy_send_timeout 30s;
  
  		# 设置请求响应超时时间 默认是60s
  		proxy_read_timeout 10s;
  		
  		proxy_pass_header xxxx;  # 放行
      proxy_hide_header abc;   # 隐藏
      
      proxy_cookie_path /user/ /; #意味着 path=/user/some/uri/ 改成 path=/some/uri/
      
        # 设置cookie属性相关举例 如ecure, httponly, samesite=strict, samesite=lax, samesite=none
  			# 相反 nosecure, nohttponly, nosamesite 表示去掉相关属性
       proxy_cookie_flags username secure; # 意味着 给username这个cookie增加secure 属性
       proxy_cookie_flags ~ nosecure samesite=strict; # 意味着 删除secure属性,增加samesite=strict属性
		} 
}

8、设置DNS服务 resolver resolver_timeout

server {
	listener 8099;
  			
 	location = /test {
  		# 设置代理DNS解析
  		resolver 127.0.0.1 [::1]:5353;
  		resolver_timeout 10s; #默认30s
      # xxx.com.cn ===> 192.168.18.132
			proxy_pass http://xxx.com.cn:9010;

  		# 设置请求头
  		proxy_set_header Host $proxy_host;

  		# 设置请求超时时间  默认是60s
      proxy_send_timeout 30s;
  		
     # 设置请求响应超时时间 默认是60s
  		proxy_read_timeout 10s;
  		
  		proxy_pass_header xxxx;  # 放行
      proxy_hide_header abc;   # 隐藏
      
      proxy_cookie_path /user/ /; #意味着 path=/user/some/uri/ 改成 path=/some/uri/
       
        # 设置cookie属性相关举例 如ecure, httponly, samesite=strict, samesite=lax, samesite=none
  			# 相反 nosecure, nohttponly, nosamesite 表示去掉相关属性
       proxy_cookie_flags username secure; # 意味着 给username这个cookie增加secure 属性
       proxy_cookie_flags ~ nosecure samesite=strict; # 意味着 删除secure属性,增加samesite=strict属性
		} 
}

9、设置读取客户端数据超时时间(指前后两次读取的时间间隔) client_body_timeout

server {
	listener 8099;
  			
 	location = /test {
  	# 设置代理DNS解析
  	resolver 127.0.0.1 [::1]:5353;
  	resolver_timeout 10s; #默认30s
    # xxx.com.cn ===> 192.168.18.132
		proxy_pass http://xxx.com.cn:9010;

  	# 默认60s, 意味着前后两次读取的时间超过10s(不是指全部读取时间)就返回 408 (Request Time-out)错误 
  	client_body_timeout 10s; 
  } 
}

10、设置客户端的最大请求体 client_max_body_size

server {
	listener 8099;
  			
	location = /test {
  		# 设置代理DNS解析
  		resolver 127.0.0.1 [::1]:5353;
  		resolver_timeout 10s; #默认30s
      # xxx.com.cn ===> 192.168.18.132
			proxy_pass http://xxx.com.cn:9010;
  		# 默认60s, 意味着前后两次读取的时间超过10s(不是指全部读取时间)就返回 408 (Request Time-out)错误 
  		client_body_timeout 10s; 
  		client_header_timeout 10s; #读取【全部】请求头的超时时间,超过则报 408 (Request Time-out)错误 
  	
      # 设置客户端最大请求体
			client_max_body_size 512k; #默认1M,超过则报 413 (Request Entity Too Large) error
      .......
     } 
}

扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/1720.html

标签: 413 nginx
分享给朋友:

“nginx 代理设置一 之常见的设置(nginx代理zabbix)” 的相关文章

Nginx总结(六)nginx实现负载均衡

前面讲了如何配置Nginx虚拟主机,大家可以去这里看看nginx系列文章:https://www.cnblogs.com/zhangweizhong/category/1529997.html今天要说的是如何配置nginx和tomcat实现反向代理。需要说明的是:由于本文章是nginx系列文章中的一...

Nginx基础知识之rewrite反向代理规则

location ~ .*\.(sh|bash)?$ {return 403;}~是区分大小写的匹配。? 是匹配前面的字符零次或者一次。状态码403是Fobidden,表示服务器已经理解请求,但是拒绝执行它。访问的URL以.sh或.bash结尾,则返回状态码403。403表示服务器已经理解请求,但是...

NGINX配置跨域CORS支持 nginx配置跨域请求

NGINX配置跨域CORS支持这两天在搞酷瓜云网课的 app,采用 uni-app 做全端支持,现学现卖,目前算是入门了。在做 H5 的时候难免会跨域请求后端 API,虽然用 HBuilder 内置的浏览器不会有跨域问题(这个应该是做了内部处理),但是那个内置浏览器真尼妈坑爹,过一会就会卡死,导致...

解决Apache 2.4+PHP5.6不支持CURL

跑一个demo,突然发现,服务器上最普通的Apache 2.4+PHP5.6组合,不支持curl,报告没有curl_init函数;而php.ini里面已经打开了php_curl.dll,而且php -i的输出是正常的,说明curl是可以执行的。折腾了半天百思不得其解,最后索性把php5.6、apac...

Nginx 的日志 nginx的日志能否保存到日志审计里面?

Nginx 的日志主要有 2 个,一个是 access.log, 一个是 error.log。如果你不进行任何配置的话,这 2 个日志将会使用默认的日志配置,这个日志将会位于/var/log/nginx 目录中。针对虚拟主机的配置如果你使用了 Nginx 为虚拟主机的话。那么你可以在你的虚拟主机的配...

Nginx负载均衡安全配置说明2 nginx负载均衡配置文件

上一节,我们对Nginx安全配置的几个知识点做了一个说明,例如限制IP访问、文件目录禁止访问限制、需要防止DOS攻击、请求方法的限制和限制文件上传的大小这个进行了一个分析说明,详细的文章请关注我的头条号:一点热,在里面看回之前的文章,快速入口Nginx负载均衡的一些安全配置说明其实,配置Nginx的...