本文详细介绍了Nginx网站域名转发应用场景编码的案例。原文根据实例编码非常详细,对大家的学习培训或者工作都有一定的参考价值,有需要的朋友可以参考一下。
场景一:由于服务器的限制,只扩展开放了一个端口号,但是必须请求外网地址的不同自然环境,所以nginx放在中转服务器上转发一次。
完成:
server{ listen8051; server_namelocalhost; location/license/{ proxy_passhttp://xxx.xxx.xxx.xxx:8058/; } location/{ proxy_passhttp://xxx.xxx.xxx.xxx:8051/;}}注意:
黑板标注要点:如果此处涉及上传文件的转发,则在server_name下添加client_max_body_size100m
域名转发的详细地址,proxy_pass后面必须加“/”,否则会造成转发异常。
nginx配备proxy_pass代理转发时,如果在proxy_pass后的url上加/表示根路径为正;
如果没有/,说明绝对路径,给代理一部分搭配路径。
假设以下四种情况分别被http://192.168.1.1/proxy/aerchi.html浏览。
第一种类型:
location/proxy/{
proxy_passhttp://127.0.0.1/;
}
到代理URL:http://127.0.0.1/aerchi.html
第二个(相对于第一个,最终少一个/)
location/proxy/{
proxy_passhttp://127.0.0.1;
}
到代理URL:http://127.0.0.1/proxy/aerchi.html
第三种类型:
location/proxy/{
proxy_passhttp://127.0.0.1/AAA/;
}
到代理URL:http://127.0.0.1/AAA/aerchi.html
第四种(相对于第三种,最终少了一种/)
location/proxy/{
proxy_passhttp://127.0.0.1/AAA;
}
到代理URL:http://127.0.0.1/aaaaerchi.html
场景二:由于业务流程的需要,必须将一组前端代码投影到后台管理的两个详细地址,所以必须对套接字进行差分转发,转发时必须去掉差分标记。
完成:
server{ listen0.0.0.0:8204; server_namelocalhost; #静态网页文件目录 rootE:\xxxxxxx; #默认首页 index/index.html; proxy_set_headerHost$http_host; proxy_set_headerX-Real-IP$remote_addr; proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for; #proxy_cookie_path/*/*; client_max_body_size100m; location~*/wx/(.*){#根据插口是不是包括/wx/来区别 #动态性网页页面,交到tomcat解决 if(!-e$request_filename){ proxy_passhttp://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_passhttp://127.0.0.1:8092; #proxy_cookie_path/*/*; } } error_page500502503504/50x.html; location=/50x.html{ roothtml; } }注意:
1、proxy_set_headerHost$http_Host;
不要更改请求标题。
2、proxy_set_headerHost主机;如果手机客户端的请求头中不包含这个头,那么发送到后端开发服务器的请求就不包含这个头。在这种情况下,应用主机;如果手机客户端的请求头中不包含这个头,那么发送到后端开发服务器的请求就不包含这个头。在这种情况下,应用主机;如果手机客户端的请求头中不包含这个头,那么发送到后端开发服务器的请求就不包含这个头。在这种情况下,应用主机参数,当请求包括“主机”请求头时,其值是“主机”字段名称的值,当请求没有“主机”请求头时,是云虚拟主机的主网站域名。
3、proxy_set_header主机主机:主机:主机:代理端口;
服务器名称可以与后端开发服务器的端口号一起传输:
4.如果请求头的值是空,那么请求头就不容易传输到后端开发服务器:
proxy_set_header接受编码“”;
5.将客户的真实ip详细地址转发给后端开发服务器
proxy_set_headerHost$host
proxy_set_headerX-Forwarded-For$proxy_add_X_Forwarded_For;
proxy_set_headerX-Real-IP$remote_addr;
场景三:前端编码由vue完成,vue没有实际的网页,按照/xx/xx浏览资源,所以必须和后端管理socket区分开来。
完成:
可以根据靠近“#”的特殊符号来区分,带#的请求默认设置为静态数据资源。
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{ upstreamcloudsocket{ hash$remote_addrconsistent; server数据库查询具体ip:3306weight=5max_fails=3fail_timeout=30s; } server{ listen127.0.0.1:8058;#该设备代理端口号 proxy_connect_timeout10s; proxy_timeout300s;#设定手机客户端和代理服务项目中间的请求超时時间,假如五分钟内没实际 *** 作将全自动断掉。 proxy_passcloudsocket; } }注意:
Stream等于http,所以不必放在http
场景五:浏览网站域名时,必须跳转到另一个详细地址。
完成:
server{ listen7000; server_namelocalhost; client_max_body_size100m; location=/{ rewrite^(.*)https://www.baidu.compermanent; } }注意:
匹配完最后一个娜美标准,再下去用新位置URI标准
打破娜美标准止损的匹配,不匹配所有标准
重定向回302临时跳
永久回301永久跳。
文章里的内容就这些了。期待对大家的学习和培训有所帮助,也期待大家的应用。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)