8. Nginx代理

Nginx代理

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cmZmirs7-1612797803222)(F:\Linux\老男孩文档\image\image-20200202164145930.png)]

1.代理的概念

​ 中介、中间人

2.代理的实现方式

​ 正向代理

​ 内网到公网

​ 反向代理

​ 外网到内网

nginx作为代理服务器可以实现很多协议的代理,如http、IMAP\POP https。

3.代理配置参数

3.1.添加发往后端服务器的请求头信息

Syntax:proxy_set_header field value;

Default: proxy_set_header Host $proxy_host;

​ proxy_set_header Connection close;

Context:http,server,location

#用户请求的时候HOST的值是www.oldboy.com,那么代理服务器会像后端传递请求的还是www.oldboy.com。proxy_set_header Host $http_Host;

#将 r e m o t e a d d r 的 值 放 进 变 量 X − R e a l − I P 中 , remote_addr的值放进变量X-Real-IP中, remoteaddrXRealIPremote_addr的值为客户端的ip proxt_set_header X-Real-ip $remote_addr;

#客户端通过代理服务器访问后端服务,后端服务通过该变量会记录真是客户端地址 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

3.2.代理到后端的TCP连接、响应等超时时间

//nginx代理与后端服务器连接超时时间(代理连接超时)

Syntax:proxy_connect_timeout time;

Default:proxy_connect_timeout 60s;

Context:http,server,location

//nginx代理等待后端服务器的响应时间

Syntax:proxy_read_timeout time;

Default:proxy_read_timeout 60s;

Context:http,server,location

//后端服务器数据回传给nginx代理超时时间

Syntax:porxy_send_timeout time;

Default:proxy_send_timeout 60s;

Context:http,server,location

3.3.proxy_buffer代理缓存区

//nginx会把后端返回内容放到缓存区当中,然后在返回给客户端,边收边传,不是全部接收在传给客户端

Syntax:proxy_buffering on | off;

Default:proxy_buffering on;

Context:http , server , location

//设置nginx代理保存用户信息的缓存区

Syntax:proxy_buffer_size size;

Default:proxy_buffer_size 4k|8k;

Context:http , server , location

//proxy_buffers 缓存区

Syntax:proxy_buffers number size;

Default:proxy_buffers 8 4k|8k;

Context:http , server , location

3.4.proxy代理网站常用配置如下,将配置写入新文件,调用使用include引用即可

[root@bl01 nginx]# cat proxy_params 
#请求头部
	proxy_set_header Host $http_host; 
	proxy_set_header X-Real-IP $remote_addr;
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

#超时时间
	#nginx代理与后端服务器连接超时时间(代理超时30秒)
	proxy_connect_timeout 30;  
	#nginx代理等待后端服务器的响应时间60s
	proxy_send_timeout 60; 
	# 后端服务器数据回传给nginx代理超时时间60s
	proxy_read_timeout 60;

#缓存的配置
	proxy_buffering on;
	proxy_buffer_size 32k;
	proxy_buffers 4 128k;

4.实际操作

web01操作

[root@web01 conf.d]# cat wordpress.conf 
server {
	listen 80;
	server_name yan.wordpress.com;
	root /html/wordpress;
	index index.php index.html;
	access_log /html/wordpress/log/access.log;
	error_log /html/wordpress/log/error.log;
	location ~ \.php$ { 
		root /html/wordpress;
		index index.php index.html;
		fastcgi_pass   127.0.0.1:9000;
		fastcgi_index  index.php;
		fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
		include        fastcgi_params;
}
}
[root@bl01 conf.d]# systemctl restart nginx

LB代理操作

[root@bl01 nginx]# cat proxy_params 
#请求头部
	proxy_set_header Host $http_host; 
	proxy_set_header X-Real-IP $remote_addr;
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

#超时时间
	#nginx代理与后端服务器连接超时时间(代理超时30秒)
	proxy_connect_timeout 30;  
	#nginx代理等待后端服务器的响应时间60s
	proxy_send_timeout 60; 
	#后端服务器数据回传给nginx代理超时时间60s
	proxy_read_timeout 60; 

#缓存的配置
	proxy_buffering on;
	proxy_buffer_size 32k;
	proxy_buffers 4 128k;

[root@bl01 conf.d]# cat wordpress_proxy.conf 
	server {
		listen 80;
		server_name yan.wordpress.com;
		location / {
			proxy_pass http://172.168.20.6:80;
			include proxy_params;
		}
	}
[root@bl01 conf.d]# systemctl restart nginx   重启会清空缓存

5.排错

如果通过代理访问不到web页面,怎么排错。

  1. 检查web服务器是否能提供服务,

    ​ 检查配置文件

    ​ 根据日志判断错误类型

    ​ 网页也目录、索引页是否创建,权限

    ​ 服务是否启动

  2. 检查代理服务器的配置

    ​ 检查配置文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值