Nginx详解十四:Nginx场景实践篇之代理服务
代理的作用
Nginx代理
正向代理
反向代理
正向代理和反向代理的区别:代理的对象不一样
正向代理代理的对象是客户端,反向代理代理的对象是服务端
反向代理:
配置语法:proxy_pass URL;
默认状态:-
配置方法:location、if in location、limit_except
把原来的conf文件改一下名字,并且再复制一个重命名
修改realserver.conf
把里面之前配的location全部去掉,改为
location / {
root /opt/app/code2;
index index.html index.htm;
}
上传一个html到code2里面
把里面之前配的location全部去掉,改为
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
加一个location,当访问的是以test_proxy.html结尾的时候,转到127.0.0.1:8080
location ~ /test_proxy.html$ {
proxy_pass http://127.0.0.1:8080;
}
检查配置语法并重启
nginx -tc /etc/nginx/nginx.conf
nginx -s reload -c /etc/nginx/nginx.conf
使用netstat -luntp|grep nginx命令看一下
访问8080
访问80
把反向代理配置项注释掉再访问就会404
以上就是通过80做代理,反向代理8080
正向代理
把之前的conf留一个改为admin.conf,另外一个删除
只留一个location,并且改为如下
location / {
if (http_x_forwarded_for !~* "^192\.168\.1\.141"){ # 允许访问的IP
return 403;
}
root /usr/share/nginx/html;
index index.html index.htm;
}
检查配置语法并重启
访问
使用谷歌代理插件
使用代理再次访问
代理配置语法补充:http://nginx.org/en/docs/http/ngx_http_proxy_module.html
缓冲区:
配置语法:proxy_buffering on | off;
默认状态:proxy_buffering on
配置方法:http、server、location
扩展:proxy_buffer_size、proxy_buffers、proxy_busy_buffers_size
跳转重定向:
配置语法:proxy_redirect default;
proxy_redirect off;proxy_redirect redirect replacement;
默认状态:proxy_redirect default;
配置方法:http、server、location
头信息
配置语法:proxy_set_header field value;
默认状态:proxy_set_header Host $proxy_host;
proxy_set_header Host Connection close;
配置方法:http、server、location
扩展:proxy_hide_header、proxy_set_body
超时:Nginx作为代理,到后端服务器的超时
配置语法:proxy_connect_timeout time;
默认状态:proxy_connect_timeout 60s;
配置方法:http、server、location
扩展:proxy_read_timeout、proxy_send_timeout
代理补充配置和规范
由于上面的那些配置可能会有很多地方用到,所以拿出来单独放在一个文件里面(文件需放在/etc/nginx下)
在location里面调用