0
点赞
收藏
分享

微信扫一扫

8. Nginx代理



目录

  • ​​Nginx代理​​
  • ​​1.代理的概念​​
  • ​​2.代理的实现方式​​
  • ​​3.代理配置参数​​
  • ​​3.1.添加发往后端服务器的请求头信息​​
  • ​​3.2.代理到后端的TCP连接、响应等超时时间​​
  • ​​3.3.proxy_buffer代理缓存区​​
  • ​​3.4.proxy代理网站常用配置如下,将配置写入新文件,调用使用include引用即可​​
  • ​​4.实际操作​​
  • ​​5.排错​​


Nginx代理

8. Nginx代理_linux

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中, remoteaddr的值放进变量X−Real−IP中,remote_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. 检查代理服务器的配置

    检查配置文件


举报

相关推荐

8.原型链

8.事件对象

8.【CSS浮动】

8.静态文件

CMS 8.表格

8.回溯算法

0 条评论