nginx代理转发域名(Nginx域名转发使用场景代码实例)
nginx代理转发域名
Nginx域名转发使用场景代码实例场景1:因服务器限制,所以只对外开放了一个端口,但是需要请求不同的外网环境,所以在中转服务器上用nginx做了一次转发
实现:
server { listen 8051; server_name localhost; location /license/ { proxy_pass http://xxx.xxx.xxx.xxx:8058/; } location / { proxy_pass http://xxx.xxx.xxx.xxx:8051/; } }
特别注意:
敲黑板:此处如果涉及到文件上传的转发,相应在server_name下添加client_max_body_size 100m;
域名转发的地址,proxy_pass后面必须跟"/",否则会造成转发不正常
在nginx中配置proxy_pass代理转发时,如果在proxy_pass后面的url加/,表示绝对根路径;
如果没有/,表示相对路径,把匹配的路径部分也给代理走。
假设下面四种情况分别用 http://192.168.1.1/proxy/aerchi.html 进行访问。
第一种:
location /proxy/ {
proxy_pass http://127.0.0.1/;
}
代理到URL:http://127.0.0.1/aerchi.html
第二种(相对于第一种,最后少一个 / )
location /proxy/ {
proxy_pass http://127.0.0.1;
}
代理到URL:http://127.0.0.1/proxy/aerchi.html
第三种:
location /proxy/ {
proxy_pass http://127.0.0.1/aaa/;
}
代理到URL:http://127.0.0.1/aaa/aerchi.html
第四种(相对于第三种,最后少一个 / )
location /proxy/ {
proxy_pass http://127.0.0.1/aaa;
}
代理到URL:http://127.0.0.1/aaaaerchi.html
场景2:因业务需要,一套前段代码需要映射到两个后台地址上,所以需要在接口上进行区分转发,同时转发时需要把区分标志去掉
实现:
server { listen 0.0.0.0:8204; server_name localhost; # 静态页面目录 root E:\xxxxxxx; # 默认首页 index /index.html; 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_cookie_path /* /*; client_max_body_size 100m; location ~*/wx/(.*) {#根绝接口是否包含/wx/来区分 # 动态页面,交给tomcat处理 if ( !-e $request_filename) { proxy_pass http://127.0.0.1:8091/$1;#转到后台时需要把/wx去掉 } } location / { # 用户浏览器端的缓存设置 location ~* \.(css|js|jpg|jpeg|gif|png|swf|htm|html|json|xml|svg|woff|ttf|eot|map|ico)$ { expires -1; if (-f $request_filename) { break; } } # 动态页面,交给tomcat处理 if ( !-e $request_filename) { proxy_pass http://127.0.0.1:8092; #proxy_cookie_path /* /*; } } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }
特别注意:
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;
场景3:前段代码用vue实现,vue没有具体的页面,也是通过/xx/xx来访问资源,这时候需要与后台接口进行区分
实现:
可以通过特殊字符类似“#”来区分,携带#的请求默认是静态资源
location ~* \.(#|css|js|jpg|jpeg|gif|png|swf|htm|html|json|xml|svg|woff|ttf|eot|map|ico)$ { expires -1; if (-f $request_filename) { break; } }
场景4:因服务器限制,数据库访问需要nginx进行转发
实现:
stream { upstream cloudsocket { hash $remote_addr consistent; server 数据库实际ip:3306 weight=5 max_fails=3 fail_timeout=30s; } server { listen 127.0.0.1:8058; #本机代理端口 proxy_connect_timeout 10s; proxy_timeout 300s;#设置客户端和代理服务之间的超时时间,如果5分钟内没操作将自动断开。 proxy_pass cloudsocket; } }
特别注意:
stream与http同级,所以不要放到http里
场景5:访问某域名时需要重定向到另一个地址
实现:
server { listen 7000; server_name localhost; client_max_body_size 100m; location = / { rewrite ^(.*) https://www.baidu.com permanent; } }
特别注意:
last 本条规则匹配完成后继续向下匹配新的location URI规则
break 本条规则匹配完成后终止,不在匹配任何规则
redirect 返回302临时重定向
permanent 返回301永久重定向
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。
- nginxlocation匹配参数(nginx location优先级的深入讲解)
- linux nginx搭建(Ubuntu使用nginx搭建webdav文件服务器的详细过程)
- nginx proxy设置存放在哪里(nginx配置proxy_pass中url末尾带/与不带/的区别详解)
- nginx配置404状态码(解决Nginx 配置 proxy_pass 后 返回404问题)
- 如何认识服务器(关于Nginx、Apache、Tomcat三个WEB服务器的区别和认知)
- nginx服务器怎么屏蔽爬虫(nginx 防盗链防爬虫配置详解)
- nginx和lua哪个好(nginx+lua单机上万并发的实现)
- dockernginx服务器教程(Docker镜像+nginx 部署 vue 项目的方法)
- 宝塔nginx装哪个版本(宝塔面板nginx关闭状态,启动不了解决办法)
- nginx 可以部署java吗(Java-利用Nginx负载均衡实现Web服务器)
- nginx查看rewrite日志(Nginx Rewrite使用场景及配置方法解析)
- 新手nginx反向代理问题(详解Nginx proxy_pass的一个/斜杠引发的血案)
- nginx如何代理项目(Nginx代理同域名前后端分离项目的完整步骤)
- nginx 配置https(Nginx下配置Https证书详细过程)
- 内网nginx配置https详解(Nginx如何配置Http、Https、WS、WSS的方法步骤)
- nginx结构图解(详解Nginx 工作原理)
- 还在卖 禁药西布曲明网上论斤卖(还在卖禁药西布曲明网上论斤卖)
- 微商在朋友圈热卖的 DL减肥咖啡 含违禁药物,你还敢买吗(微商在朋友圈热卖的)
- 八一节,说说中国女兵(八一节说说中国女兵)
- 王治郅菜鸟赛季已让八一带入正轨,大郅七大经典语录或是成功秘诀(王治郅菜鸟赛季已让八一带入正轨)
- 庆八一,重读经典红色语录,感悟互联网发展硬道理(重读经典红色语录)
- TVB新剧《黯夜守护者》将播,陈展鹏陈炜首次合作探讨人性(TVB新剧黯夜守护者将播)
热门推荐
- dedecms用什么来调用文章描述(织梦DEDECMS文档关键词频率不能修改的解决方法)
- django 获取请求参数(深入理解Django-Signals信号量)
- css3网格布局图(详解CSS3 弹性布局快速入门)
- vmware虚拟linux无法配置ip(在VMware虚拟机中查看Linux的IP地址的方法)
- 如何配置ftp服务器连接(云服务器设置ftp服务器配置怎么操作?)
- view组件讲解(浅谈移动端中的视口viewport的具体使用)
- python进度条怎么实现(Python小进度条显示代码)
- python如何把字符串转换成数字(python实现字符串加密成纯数字)
- sql语句按字段排序(SQL语句实现表中字段的组合累加排序)
- Sql Server锁的粒度
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9