自今年互联网环境大整顿,从电信机房到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配置文件。在末尾处(“}”号之前)添加如下内容:
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;
|
12
|
proxy_pass http: //block.opensoce.com:81;
|
13
|
# 此处填写你的IP或者域名外加你服务器开放的端口。
|
执行
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
内容如下:
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 ;
|
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;
|
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 末尾的”}”前加上一行:
然后你要支持几个网站就在 nginx.conf添加几行:
3
|
server_name www.opensoce.com;
|
5
|
proxy_pass http: //block.opensoce.com:81;
|
示例:
查看源代码 打印帮助
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端口被封相关推荐
- (转)Nginx反向代理设置 从80端口转向其他端口
from :http://www.cnblogs.com/wuyou/p/3455381.html Nginx反向代理设置 从80端口转向其他端口 反向代理(Reverse Proxy)方式是指以代理 ...
- 利用nginx 反向代理解决跨域问题
利用nginx 反向代理解决跨域问题 参考文章: (1)利用nginx 反向代理解决跨域问题 (2)https://www.cnblogs.com/hpx2020/p/9928175.html 备忘一 ...
- 利用Nginx反向代理解决80端口复用(内网域名转发)问题
公司多台服务器,但只有一个公网IP,80端口只好给公司网站使用 那么访问其他业务系统只能用反向代理做域名转发去实现 即:利用web服务器的80端口代理其它服务器的非80端口,实现80端口复用 反向代理 ...
- 通过nginx反向代理解决跨域
先写一个发送跨域请求的页面index.html <html> <head><title></title> </head> <body& ...
- 使用Nginx反向代理tomcat服务器
使用Nginx反向代理tomcat服务器 2015-04-23 11:19 244人阅读 评论(0) 收藏 举报 分类: Tomcat(5) LNMP/LAMP开发平台研究(10) 版权声明: ...
- nginx反向代理解决跨域问题,使本地调试更方便
nginx反向代理解决跨域问题,使本地调试更方便 参考文章: (1)nginx反向代理解决跨域问题,使本地调试更方便 (2)https://www.cnblogs.com/gwf93/p/102951 ...
- 解决服务器80端口监听异常导致无法打开和访问网站的问题
转载:原文章地址:解决服务器80端口监听异常导致无法打开和访问网站的问题 - 爱码网 如果遇到IIS服务器的网站无法访问,并在IE/EDGE浏览器中显示无法显示此页的问题,一般情况下是有多种可能因素, ...
- nginx反向代理缓存服务器构建
博主QQ:819594300 博客地址:http://zpf666.blog.51cto.com/ 有什么疑问的朋友可以联系博主,博主会帮你们解答,谢谢支持! 代理服务可简单的分为正向代理和反向代理: ...
- nginx解决浏览器跨域问题_前端通过Nginx反向代理解决跨域问题
在前面写的一篇文章SpringMVC解决跨域问题,我们探讨了什么是跨域问题以及SpringMVC怎么解决跨域问题,解决方式主要有如下三种方式: JSONP CORS WebSocket 可是这几种方式 ...
- webstorm前端使用Nginx 反向代理解决跨域问题
1.webstorm设置端口 2. 3. 4. 5. 把项目放到nginx安装目录的html文件夹下: 6. 配置nginx.conf文件 server {listen 8090; #监听端口serv ...
最新文章
- c++ properties_Java怎么从这四个位置读取配置文件Properties(普通文件系统-classpath-jar-URL)
- div与div区别小结
- mysql5.7转移_mysql从5.7.17迁移到5.7.22业务报错
- 深度学习笔记(36) 边界框预测
- 数组图形的一些数学操作 有可能考试会遇到哦
- Java 算法 数字分类
- mysql 用户授权授权_mysql的用户权限如何授权
- 【转载】大学生必备软件免费自学视频教程,让那些培训班都见鬼去吧
- YOLO算法之YOLOv2精讲
- semilogx 多条曲线_如何在excel中绘制多条曲线
- 优化机场值机体验之护照阅读器
- csdn上面文章转发
- JAVA Applet——绘制心形曲线
- 批量提取Word中的图片
- 算法_趣味分数_Question5_列出真分数序列(java实现)
- 计算机心得体会400字,电脑作文400字四篇
- 互联网的金门大桥:Cisco
- 一分钟自我介绍怎么说才精彩
- PAT 1121 Damn Single
- ios手写_如何在iOS 10中发送手写和数字触摸消息
热门文章
- 使用PMT和IPMT在Excel中显示贷款付款
- css 实现导航菜单
- PWM占空比和分辨率
- Matlab 线性拟合 polyfit 结果不准/偏差很大
- Python函数的定义使用、return返回值、参数传递方式、结合字典列表循环的使用以及将函数存储在模块中
- 客户价值分析(聚类)
- 【机器学习】左逆、右逆、伪逆和广义逆的概念理解
- ATSC /DVB SI/PSI 主要的区别
- 计算机教室标语6个字,教室常用标语
- 计算机文档加密如何解锁,bitlocker怎么解锁_bitlocker解锁方法