nginx反向代理概念
反向代理也称reverse proxy,指的就是代理外网用户请求到内部指定web服务器,并将数据返回给用户的一种方式。
nginx除了可以在企业提供高性能的web服务之外,另外还可以将本身不具备的请求通过某种预定的协议转发至其他服务器处理,不同的协议就是nginx服务器与其他服务器进行通信的一种规范,主要在不同场景使用以下模块实现不同的功能。
ngx_http_proxy_module: 将客户端的请求以http协议转发至指定服务器进行处理。
ngx_stream_proxy_module:将客户端的请求以tcp协议转发至指定服务器处理。
ngx_http_fastcgi_module:将客户端对php的请求以fastcgi协议转发至指定服务器助理。
ngx_http_uwsgi_module:将客户端对Python的请求以uwsgi协议转发至指定服务器处理。
反向代理部署流程图:
2.反向代理配置参数
2.1 proxy_pass参数
proxy_pass; #用来设置将请求转发后端服务器的主机,可以是主机名、IP地址加端口,也可以代理预先设置的主机群
nginx配置文件设置
location /web {
#proxy_pass http://192.168.227.132:80/;
proxy_pass http://192.168.142.132:80;
index index.html;
}
其中proxy_pass填写后端服务器地址加/和不加/的区别:
proxy_pass http://192.168.227.132/ ---> 访问/var/www/html/index.html 浏览器输入url为http://www.xiaoma.net/web
proxy_pass http://192.168.227.132 ---> 访问/var/www/html/web/index.html 浏览器输入url为http://www.xiaoma.net/web
测试访问结果:
curl -L http://www.magedu.net/web/index.html
2.2 proxy_hide_header参数
proxy_hide_header; #用于nginx作为反向代理的时候,在返回客户端http响应的时候,隐藏后端服务版本相应头部信息,
#可以设置在http/server或者location
location /web