美文网首页
百度结果都是骗人的

百度结果都是骗人的

作者: 伍仟蚊 | 来源:发表于2016-10-09 21:20 被阅读79次

为解决资源整合的问题,需要使用Nginx对局域网内部的网站进行统一管理进行反向代理,以供外网访问。

根据URI(全球统一资源定位符)的定义

[scheme:][//host:port][path][?query][#fragment]

可知,常规用于区分站点的手段有三种

1,域名host

2,端口port

3,IP

域名需要DNS解析和绑定,不方便管理,而且被工信部限制使用(域名需要备案)

端口除了防火墙限制了端口开放外(局域网防火墙只允许特定少数端口开放如80),也受到ISP(网络供应商,如电信等的限制)

局域网网络处理局域网内,外网IP数量有限,校内资源无法使用IP进行对外公布

所以从常规的三种手段都无法解决这个难题

根据当前系统部署现状,以及网络环境,前面三种常用的技术方案都不太适用,因此延伸考虑path,但path通用的防火墙或者域名提供商难以对Path进行区分和转发,因此这需要一台独立的服务器以及特定的容器应用程序设置区分.

实现原理:

1. 服务器指定域名为:www.test.com

2. 设置Path(虚拟目录)www.test.com/source1

3. 将Path资源重定向到内部网络服务资源

查了诸多文档,以下链接的文档有参考价值,但也达不到目的

http://blog.csdn.net/dyllove98/article/details/8923212

server

{

listen  80;

location /test {

proxy_next_upstream http_502 http_504 error timeout invalid_header;

proxy_pass http://192.168.0.37/test/;

proxy_set_header Host 192.168.0.37;

proxy_set_header X-Forwarded-For $remote_addr;

}

location / {

proxy_next_upstream http_502 http_504 error timeout invalid_header;

proxy_pass http://192.168.0.37/;

proxy_set_header Host 192.168.0.37;

proxy_set_header X-Forwarded-For $remote_addr;

}

}

这段代码如果是单一的二级目录其实是可以转发的,受它启发证明二级目录转发是可以实现的,那问题来了,如果存在多个要如何办呢?https://zhangge.net/5054.html链接给出了另名的方式用upstream转发,原理也差不多。代码就不贴了。

综上所述要解决多个二级目录转发问题,关键是转发后,页面带的资源文件,没有带二级目录,以致资源丢失,说人话就是:

aaa.com/aaa -> 192.168.0.1 域名aaa.com/aaa指向内部地址,但当页面包含资源时,这些资源就没有/aaa了这样导致资源无法定向到192.168.0.1了。

因为http是无状态的,URL本身包含的内容已经无法用于再标识其本身,所以此时作为一个码狗突然想起本职工作,不如用Cookie标识一下。然后查阅了Nginx带的Cookie功能,果然可以,下面上菜了。

server {

listen 88;

server_name ~^\d+\.\d+\.\d+\.\d+$;

location /sise {

proxy_next_upstream http_502 http_504 error timeout invalid_header;

proxy_pass http://www.sise.com.cn/;

proxy_set_header Host www.sise.com.cn;

proxy_set_header X-Forwarded-For $remote_addr;

#这里设置根据虚拟目录设置一个HOST到客户端记住用户是访问test的

add_header Set-Cookie 'host=www.sise.com.cn';

}

location /mis {

proxy_next_upstream http_502 http_504 error timeout invalid_header;

proxy_pass http://ca.sise.com.cn:7001/tomcat/;

proxy_set_header Host ca.sise.com.cn:7001;

proxy_set_header X-Forwarded-For $remote_addr;

add_header Set-Cookie 'host=ca.sise.com.cn';

}

location /tomcat {

proxy_next_upstream http_502 http_504 error timeout invalid_header;

proxy_pass http://ca.sise.com.cn:7001/tomcat;

proxy_set_header Host ca.sise.com.cn:7001;

proxy_set_header X-Forwarded-For $remote_addr;

add_header Set-Cookie 'host=ca.sise.com.cn';

}

location / {

proxy_next_upstream http_502 http_504 error timeout invalid_header;

proxy_set_header X-Forwarded-For $remote_addr;

if ( $http_cookie ~ "^(.*www\.sise.com\.cn.*)$")

{

proxy_pass http://www.sise.com.cn;

break;

}

if ( $http_cookie ~ "^(.*ca\.sise.com\.cn.*)$")

{

proxy_pass http://ca.sise.com.cn;

break;

}

}

}

无法显示?

==============华丽分割线20170213修改=============

以下代码在非硬编码情况可以达到虚拟目录转发效果

location /web/ {

auth_basic "Restricted";

auth_basic_user_file htpasswd;

proxy_redirect off ;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header REMOTE-HOST $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_pass    http://localhost:808;

}

相关文章

  • 百度结果都是骗人的

    为解决资源整合的问题,需要使用Nginx对局域网内部的网站进行统一管理进行反向代理,以供外网访问。 根据URI(全...

  • 8.14

    天气预报说这个星期都有雨,结果都是骗人的,再也不相信了,童话里都是骗人的。

  • 结果不会骗人

    宅家假期久了,各家怕孩子上网课损坏眼晴,都在想方设法陪伴孩子,但是无论形式花样再多,但陪伴的质量是要看结果的。因学...

  • 都是骗人的…

    高考之前老师说什么上大学之后就随便玩的话绝对是骗人的。 正式上学的第一周就这么忙。各种面试,不定时的班会,排球...

  • 都是骗人的。

    还没开学就早早的来到了大学所在的城市。9.5号那天凌晨4点老爸将我送往机场(ps:凌晨车少不拥堵)从深圳宝安飞往江...

  • 都是骗人的

    头发理了,女朋友还是要跟我分手。怎么办?

  • 都是骗人的

    你见过凌晨四点钟的天空吗?你有注意过夏日傍晚的日落吗?你尝过眼泪的味道吗?你明白笑容背后的意义吗?你相信自...

  • 都是骗人的

    这几天彻底放松了,结果问了一下孩子,原来还是要考试的。数学才得了71分,晕死!感觉平时做卷子还好吧,除了马虎的...

  • 都是骗人的

    每个人心里都有一个属于自己的森林 迷失的人迷失了 相遇的人会再相遇。 ——村上村树 走散了的人 就不会再遇见了 走...

  • 都是骗人的

    每天 好多个男人给我打电话 ——是外卖送货小哥 每天 好多次被幸运彩蛋砸中 ——是网上贩卖产品 每天 好多次对着镜...

网友评论

      本文标题:百度结果都是骗人的

      本文链接:https://www.haomeiwen.com/subject/ascmyttx.html