自今年互联网环境大整顿,从电信机房到IDC再到用户,都深有感触,此次整顿由整治色情牵头,逐渐发展成打黄扫非的专项行动,采取史上最严厉的措施:拔线,封机房。很多IDC和电信签了合同,由于服务器上存在那么一两个“非法”网站而导致更多合法用户遭到连坐,一旦80端口被封,其他合法用户的域名无法访问。紧接着又加强了域名备案制度,刚申请的域名尚未备案完成就急于指向IP导致该IP地址被封,其他合法用户的域名也会无法访问。

本文是建立在你网站本身“合法”但却因连坐导致网站无法访问的基础上,利用Nginx实现访问你机器的其他端口。

准备条件:国内外正常提供服务并装好Nginx的VPS一个。推荐Xen VPS、OpenVZ。既然是VPS建议装CentOS,CentOS就是免费的。Nginx本身也是在Linux/BSD平台下的效率最高。

一直以来我们都把Nginx当成高性能的Web服务器来用,却忽略了其反向代理服务器的重要作用,注意看:“Nginx [engine x] is a HTTP and reverse proxy server”的后半部分,reverse proxy server即反向代理服务器。

关于nginx的web服务器相关介绍及安装,可以参考张宴大师的 《Nginx 0.8.x + PHP 5.2.13(FastCGI)搭建胜过Apache十倍的Web服务器(第6版)[原创]》 一文。

今天我们重点介绍如何通过Nginx反向代理功能,实现访问网站域名的的时候自动访问你服务器的其他某个端口,比如81,当然你的81端口要能使用,不能用81的话你就在你被Blocked 80的服务器上指定65535内找个能用的端口,然后指定IIS或者Apache的Web服务端口为该端口。

1.一台服务器一个网站

我们假定主域名为 www.opensoce.com,那么www.opensoce.com的A记录应指向到你VPS的 IP上,然后可以建立个block.opensoce.com指向你被封的服务器IP,修改VPS的Nginx.conf配置文件。在末尾处(“}”号之前)添加如下内容:

01 server {
02  listen   80;
03  server_name  www.opensoce.com;
04         proxy_set_header X-Real-IP $remote_addr;
05         proxy_set_header REMOTE-HOST $remote_addr;
06         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
07  access_log  /home/www/logs/opensoce.com_access.log;
08  location /robots.txt {
09   root   /home/www/www.opensoce.com;
10  }
11  location / {
12     proxy_pass http://block.opensoce.com:81;
13 # 此处填写你的IP或者域名外加你服务器开放的端口。
14  }
15 }

执行

1 kill -HUP `ps aux|grep "nginx: master "|awk '{print $2}'`

平滑重启nginx即可。

这个是一个网站的反向代理,如果你有多个网站,那么在服务器的Apache的httpd.conf中分配不同的端口给不同的站点,然后在VPS的Nginx.conf按照上面的代码复制一份修改端口和域名即可,有多少个网站服务器就要开多少个端口,相应的 vps上的nginx.conf也要有相关配置才能正常访问。

2.一台服务器多个站

在nginx.conf同目录建立 proxy.conf
内容如下:

01 proxy_redirect     off;
02 proxy_set_header Host $host;
03 proxy_set_header X-Real-IP $remote_addr;
04 proxy_set_header REMOTE-HOST $remote_addr;
05 proxy_set_header X-Forwarded-For $remote_addr;
06 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
07  
08 client_max_body_size    10m;
09 client_body_buffer_size    128k;
10 proxy_connect_timeout   90;
11 proxy_send_timeout      90;
12 proxy_read_timeout      90;
13 proxy_buffer_size         32k;
14 proxy_buffers             4 32k;
15 proxy_busy_buffers_size 64k;
16 proxy_temp_file_write_size 64k;
17 proxy_ignore_client_abort on;
18 proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;
19 proxy_max_temp_file_size 128m;

在nginx.conf 末尾的”}”前加上一行:

1 include proxy.conf;

然后你要支持几个网站就在 nginx.conf添加几行:

1 server {
2   listen 80;
3   server_name www.opensoce.com;
4   location / {
5     proxy_pass http://block.opensoce.com:81;
6   }
7 }

示例:

查看源代码 打印帮助
1 server { listen 80; server_name  www.opensoce.com; location / { proxy_passhttp://block.opensoce.com:81; }}
2 server { listen 80; server_name  www1.opensoce.com; location / { proxy_passhttp://block.opensoce.com:82; }}
3 server { listen 80; server_name  www2.opensoce.com; location / { proxy_passhttp://block.opensoce.com:83; }}

利用Nginx反向代理解决服务器80端口被封相关推荐

  1. (转)Nginx反向代理设置 从80端口转向其他端口

    from :http://www.cnblogs.com/wuyou/p/3455381.html Nginx反向代理设置 从80端口转向其他端口 反向代理(Reverse Proxy)方式是指以代理 ...

  2. 利用nginx 反向代理解决跨域问题

    利用nginx 反向代理解决跨域问题 参考文章: (1)利用nginx 反向代理解决跨域问题 (2)https://www.cnblogs.com/hpx2020/p/9928175.html 备忘一 ...

  3. 利用Nginx反向代理解决80端口复用(内网域名转发)问题

    公司多台服务器,但只有一个公网IP,80端口只好给公司网站使用 那么访问其他业务系统只能用反向代理做域名转发去实现 即:利用web服务器的80端口代理其它服务器的非80端口,实现80端口复用 反向代理 ...

  4. 通过nginx反向代理解决跨域

    先写一个发送跨域请求的页面index.html <html> <head><title></title> </head> <body& ...

  5. 使用Nginx反向代理tomcat服务器

    使用Nginx反向代理tomcat服务器 2015-04-23 11:19 244人阅读 评论(0) 收藏 举报  分类: Tomcat(5)   LNMP/LAMP开发平台研究(10)  版权声明: ...

  6. nginx反向代理解决跨域问题,使本地调试更方便

    nginx反向代理解决跨域问题,使本地调试更方便 参考文章: (1)nginx反向代理解决跨域问题,使本地调试更方便 (2)https://www.cnblogs.com/gwf93/p/102951 ...

  7. 解决服务器80端口监听异常导致无法打开和访问网站的问题

    转载:原文章地址:解决服务器80端口监听异常导致无法打开和访问网站的问题 - 爱码网 如果遇到IIS服务器的网站无法访问,并在IE/EDGE浏览器中显示无法显示此页的问题,一般情况下是有多种可能因素, ...

  8. nginx反向代理缓存服务器构建

    博主QQ:819594300 博客地址:http://zpf666.blog.51cto.com/ 有什么疑问的朋友可以联系博主,博主会帮你们解答,谢谢支持! 代理服务可简单的分为正向代理和反向代理: ...

  9. nginx解决浏览器跨域问题_前端通过Nginx反向代理解决跨域问题

    在前面写的一篇文章SpringMVC解决跨域问题,我们探讨了什么是跨域问题以及SpringMVC怎么解决跨域问题,解决方式主要有如下三种方式: JSONP CORS WebSocket 可是这几种方式 ...

  10. webstorm前端使用Nginx 反向代理解决跨域问题

    1.webstorm设置端口 2. 3. 4. 5. 把项目放到nginx安装目录的html文件夹下: 6. 配置nginx.conf文件 server {listen 8090; #监听端口serv ...

最新文章

  1. c++ properties_Java怎么从这四个位置读取配置文件Properties(普通文件系统-classpath-jar-URL)
  2. div与div区别小结
  3. mysql5.7转移_mysql从5.7.17迁移到5.7.22业务报错
  4. 深度学习笔记(36) 边界框预测
  5. 数组图形的一些数学操作 有可能考试会遇到哦
  6. Java 算法 数字分类
  7. mysql 用户授权授权_mysql的用户权限如何授权
  8. 【转载】大学生必备软件免费自学视频教程,让那些培训班都见鬼去吧
  9. YOLO算法之YOLOv2精讲
  10. semilogx 多条曲线_如何在excel中绘制多条曲线
  11. 优化机场值机体验之护照阅读器
  12. csdn上面文章转发
  13. JAVA Applet——绘制心形曲线
  14. 批量提取Word中的图片
  15. 算法_趣味分数_Question5_列出真分数序列(java实现)
  16. 计算机心得体会400字,电脑作文400字四篇
  17. 互联网的金门大桥:Cisco
  18. 一分钟自我介绍怎么说才精彩
  19. PAT 1121 Damn Single
  20. ios手写_如何在iOS 10中发送手写和数字触摸消息

热门文章

  1. 使用PMT和IPMT在Excel中显示贷款付款
  2. css 实现导航菜单
  3. PWM占空比和分辨率
  4. Matlab 线性拟合 polyfit 结果不准/偏差很大
  5. Python函数的定义使用、return返回值、参数传递方式、结合字典列表循环的使用以及将函数存储在模块中
  6. 客户价值分析(聚类)
  7. 【机器学习】左逆、右逆、伪逆和广义逆的概念理解
  8. ATSC /DVB SI/PSI 主要的区别
  9. 计算机教室标语6个字,教室常用标语
  10. 计算机文档加密如何解锁,bitlocker怎么解锁_bitlocker解锁方法