nginx 代理ip 和域名
项目中碰到linux 服务器部署项目 访问后台的拦截代理
使用nginx来做 代理ip和代理域名是不同的
主要在 proxy_set_header Host
在代理ip时 对应的值为
proxy_set_header Host $host;
代理域名的时候值为你的域名
proxy_set_header Host "www.natappfree.cc";
host详解
1、 proxy_set_header Host $http_host;
不改变请求头 。
2、proxy_set_header Host host;如果客户端请求头中没有携带这个头部,那么传递到后端服务器的请求也不含这个头部。这种情况下,使用host;如果客户端请求头中没有携带这个头部,那么传递到后端服务器的请求也不含这个头部。 这种情况下,使用host;如果客户端请求头中没有携带这个头部,那么传递到后端服务器的请求也不含这个头部。这种情况下,使用host变量它 的值在请求包含“Host”请求头时为“Host”字段的值,在请求未携带“Host”请求头时为虚拟主机的主域名;
3、proxy_set_header Host host:host:host:proxy_port;
服务器名可以和后端服务器的端口一起传送:
4、如果某个请求头的值为空,那么这个请求头将不会传送给后端服务器:
proxy_set_header Accept-Encoding “”;
5、用户真实的ip地址转发给后端服务器
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
还有就是 proxy_pass http://www.natappfree.cc/;注意无论是ip还是域名 后面都要加斜杠 / 重点
下面直接上代码
域名的
server {
listen 8008;
server_name localhost;
access_log logs/www_access.log main;
index admin.html index.htm index.jsp;
root /data/ptg_avue/;
#error_page 404 /404.html;
#error_page 502 /502.html;
location / {
}
location ^~/api {
proxy_set_header Host "www.www.com";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffering off;
rewrite ^/api/(.*)$ /$1 break;
proxy_pass http://www.www.com/;
}
}
ip的
server {
listen 8090;
server_name localhost;
access_log logs/www_access.log main;
index admin.html index.htm index.jsp;
root /data/ptg_avue/;
#error_page 404 /404.html;
#error_page 502 /502.html;
location / {
}
location ^~/api {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffering off;
rewrite ^/api/(.*)$ /$1 break;
proxy_pass http://localhost:8001;
}
}
上一篇: C#实现json对象数据批量插入数据库
下一篇: Janusgraph数据批量导入
推荐阅读