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