0
点赞
收藏
分享

微信扫一扫

【nginx代理】

律楷粑粑 2022-01-11 阅读 74

1.正向代理

2.反向代理

一、nginx代理配置语法

1.配置语法

Syntax: proxy_pass URL;

Default: -

Context: location, if in location, limit_except

http://localhost:8000/uri/

http://10.0.0.7:8000/uri/

http://unix:/tmp/backend.socket:/uri/

2.url跳转修改返回location

Syntax: proxy_redirect default;

proxy_redirect off;

proxy_redirect redirect replacement;

Default:

proxy_redirect default;

Context: http, server, location

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

Syntax: proxy_set_header field value;

Default:

proxy_set_header Host $proxy_host;

proxy_set_header Connection close;

Context: http, server, location

http header

概述

请求头

响应头

proxy_set_header Host $http_host;

#用户请求的host:www.oldboy.com,代理服务器向后端传递www.oldboy.com (区分虚拟主机)

proxy_set_header X-Real-IP $remote_addr;

#将$remote_addr的值放进变量X-Real-IP中,$remote_addr是客户端的ip

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

#客户端通过代理访问后端服务,后端服务通过该变量会记录真实客户端地址

4.代理到后端TCP连接、响应、返回等超时时间

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

Syntax: proxy_connect_timeout time;

Default:

proxy_connect_timeout 60s;

Context: http, server, location

#nginx代理等待后端服务器的响应时间60s

Syntax: proxy_read_timeout time;

Default:

proxy_read_timeout 60s;

Context: http, server, location

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

Syntax: proxy_send_timeout time;

Default:

proxy_send_timeout 60s;

Context: http, server, location

5.proxy_buffer代理缓冲区

从后端服务器获取的响应内容放置位置,文件大小和数量

6.proxy代理网站常用优化配置,可用include引用

vim /etc/nginx/proxy_params.conf

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;

proxy_connect_timeout 30;

proxy_send_timeout 60;

proxy_read_timeout 60;

proxy_buffering on;

proxy_buffer_size 32k;

proxy_buffers 4 128k;

vim /etc/nginx/conf.d/www.conf

server {

listen 80;

server_name www.oldboy.com;

location / {

proxy_pass http://....;

include proxy_params;

}

}

二、nginx反向代理配置实例

1.web01的配置

#创建www.oldboy.com虚拟主机配置

rename .conf .off *.conf #将所有.conf的文件改为.off

vim www.conf

server {

listen 172.16.1.7:80; #指定接口,需要重启服务

server_name www.oldboy.com;

location / {

root /code/www;

index index.html;

}

}

vim /etc/nginx/conf.d/wordpress.conf #增加另一个站点

server {

listen 80;

server_name blog.oldboy.com;

root /code/wordpress;

index index.php index.html;

location ~ \.php$ {

root /code/wordpress;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

}

2.lb01代理服务器配置

#安装nginx

#创建代理配置文件

vim web01_www_proxy.conf

server {

listen 80;

server_name www.oldboy.com;

location / {

proxy_pass http://172.16.1.7:80;

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;

}

}

vim web01_blog_proxy.conf #增加第二个代理

server {

listen 80;

server_name blog.oldboy.com;

locacion / {

proxy_pass http://172.16.1.7:80;

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;

}

}

总结:

1.代理的概念

中间,中间人

2.代理的实现方式

正向代理

私到公(不常用)

反向代理

公到私(常用)

3.代理的参数

请求头部

超市

缓存的配置

4.配置

前端的80端口对应多个后端的80端口,虚拟主机区分

前端的80端口对应多个后端不同的端口

排错方法:

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

根据日志判断错误

网页目录,缩阴也是否创建,权限是否正常

服务是否正常启动

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

检查配置文件

DNS解析到代理服务器

yum provides tcpdump

yum install tcpdump

举报

相关推荐

0 条评论