概念
正向代理:是一个位于客户端和原始服务器之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并制定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。(类似于访问谷歌,请求代理服务器,代理服务器请求谷歌,谷歌响应到代理服务器,代理服务器返回给浏览器)。客户是知道代理服务器和原始服务器的存在的
反向代理:位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获取目标服务器的资源。同时,客户不需要知道目标服务器的地址,也无需在客户端做任何设定。(类似于你捐东西给慈善基金会,慈善基金会捐给医院,慈善基金会相当于反向代理服务器,医院是客户端,医院并不知道给他的东西是从哪里来的,只知道慈善基金会)
语法
server{
listen 80;
server_name localhost;
location / {
proxy_pass http://192.168.12.1:8081;
}
}
可以在nginx.conf中通过include 引入其他配置文件 如include extra/*.conf,表示引入nginx.conf所在目录下的extra目录中的所有.conf文件
修改请求方式
server{
listen 80;
server_name localhost;
location / {
proxy_pass http://192.168.12.1:8081;
proxy_method POST;
}
}
获取真实IP
server{
listen 80;
server_name localhost;
location / {
proxy_pass http://192.168.12.1:8081;
proxy_method POST;
# 获取请求的host
proxy_set_header Host $host;
# 获取客户端ip地址设置到header中
proxy_set_header X-Real-IP $remote_addr;
# 获取所有转发请求的ip信息列表
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}