VPS侦探论坛

 找回密码
 注册
查看: 13278|回复: 10

如何配置反向代理?

[复制链接]
发表于 2012-9-7 15:55:52 | 显示全部楼层 |阅读模式

按照军哥的教程https://www.vpser.net/manage/linux-vps-nginx-reverse-proxy.html修改Nginx的配置文件:
server
{
     listen          80;
     server_name     t.vpser.net;
     location / {
         proxy_pass              http://twitter.com/;
         proxy_redirect          off;
         proxy_set_header        X-Real-IP       $remote_addr;
         proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
         }
}
这样只反代首页,里面的链接都是原网站的,听说还需要安装subversion和substitutions,用subs_filter指令替换。我是lnmp0.9,Debian 6 32,军哥能否给个具体的安装命令
美国VPS推荐: 遨游主机LinodeLOCVPS主机云搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
发表于 2012-9-7 16:47:59 | 显示全部楼层


  1. apt-get 或yum install subversion
  2. cd /root
  3. svn checkout http://substitutions4nginx.googlecode.com/svn/trunk/ substitutions4nginx-read-only
  4. wget soft.vpser.net/lnmp/upgrade_nginx.sh;
  5. 在upgrade_nginx.sh 77行加入  -add-module=/root/substitutions4nginx-read-only 注意-add 前要有空格

  6. sh upgrade_nginx.sh 按提示输入个版本号,如 1.2.3,回车

  7. 反向代理配置如下:
  8. server {
  9.     listen      80;
  10.     server_name youtube.vpser.net;
  11.     location / {
  12.         sub_filter www.youtube.com youtube.vpser.net;  #替换原域名
  13.         sub_filter_once off;
  14.         proxy_set_header X-Real-IP $remote_addr;
  15.         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  16.         proxy_set_header Referer http://www.youtube.com;
  17.         proxy_set_header Host www.youtube.com;
  18.         proxy_pass http://www.youtube.com; #被代理网站的网址
  19.         proxy_set_header Accept-Encoding "";
  20.     }
  21. }
复制代码


重启nginx
Linux下Nginx+MySQL+PHP自动安装工具:https://lnmp.org
 楼主| 发表于 2012-9-7 23:48:30 | 显示全部楼层

已经搞定!真的很强大!
美国VPS推荐: 遨游主机LinodeLOCVPS主机云搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
发表于 2012-9-8 08:48:56 | 显示全部楼层



学习了,可是如果域名被封的话,使用反向代理岂不是要换域名了?
或者 被封域名做国内解析,国外部分用另外一个没有被封的域名?
Linux下Nginx+MySQL+PHP自动安装工具:https://lnmp.org
 楼主| 发表于 2012-9-8 16:43:58 | 显示全部楼层

军哥,还有一个问题。在用subs_filter替换成中文时打开出现乱码,听说要nginx.conf 要保存成 utf8格式才能替换中文字符,具体改怎么做啊?我是用winscp更改的nginx.conf ,更改后在本地已经另存为utf-8了,怎么打开后还是gb编码的,很郁闷!

军哥运维代购:http://shop63846532.taobao.com/

发表于 2012-9-8 17:04:17 | 显示全部楼层

用editplus 应该可以,其他的没用过
发表于 2012-9-10 13:00:44 | 显示全部楼层

学习下,以后用的着。。。。
美国VPS推荐: 遨游主机LinodeLOCVPS主机云搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
发表于 2012-9-17 12:37:18 | 显示全部楼层

原帖由 licess 于 2012-9-7 16:47 发表
apt-get 或yum install subversion
cd /root
svn checkout http://substitutions4nginx.googlecode.com/svn/trunk/ substitutions4nginx-read-only
wget soft.vpser.net/lnmp/upgrade_nginx.sh;
在upgrade_nginx.sh  ...


这个代码是要加在nginx.conf里还是加到vhost里域名的.conf文件里啊?我家带vhost的域名文件里,/usr/local/nginx/sbin/nginx -t  测试了 sub_filter都是失败的啊!反代要是用ssl的话是不是把   80端口改成443就行了?还需要改别的代码吗?

[ 本帖最后由 wozhidao 于 2012-9-17 12:38 编辑 ]
Linux下Nginx+MySQL+PHP自动安装工具:https://lnmp.org
发表于 2012-9-17 12:47:57 | 显示全部楼层


原帖由 licess 于 2012-9-7 16:47 发表
apt-get 或yum install subversion
cd /root
svn checkout http://substitutions4nginx.googlecode.com/svn/trunk/ substitutions4nginx-read-only
wget soft.vpser.net/lnmp/upgrade_nginx.sh;
在upgrade_nginx.sh  ...


反代用ssl的话要用什么代码啊?求助啊。

军哥运维代购:http://shop63846532.taobao.com/

发表于 2012-9-17 15:51:15 | 显示全部楼层

回复 9# 的帖子




这个不大了解,可能和https://www.vpser.net/manage/namecheap-free-ssl-nginx.html 这个差不多吧
发表于 2012-9-18 20:51:36 | 显示全部楼层

想问下网址如何替换啊
比如这个 http://www.xxx.com/read.php?tid=801922&fpage=0&toread=&page=1  就访问不了,求替换成
http://www.xxx.com/htm_data/7/1209/801922.html 的Rewrite规则替换方法

  就是图片里《 这个我点一下就返回原网址了,点其他的12345都正常的
我加了以下这些都不行哇。。。
server
         {

                 listen       443;
                 server_name www.自己的.com;
                 index index.html index.htm index.php;
    ssl on;
    ssl_certificate server.crt;
    ssl_certificate_key server.key;
                 location /
          {           
                 proxy_redirect off;
                 subs_filter 'www.目标.com' 'www.自己的.com' gi;
                 subs_filter '<(iframe.*?)>[\s\S]*?<(\/iframe.*?)>' '' gi;
                 subs_filter '<(script.*?)>[\s\S]*?<(\/script.*?)>' '' gi;
                 subs_filter '<(noscript.*?)>[\s\S]*?<(\/noscript.*?)>' '' gi;
                 proxy_set_header X-Real-IP $remote_addr;
                 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                 proxy_set_header Referer http://www.目标.com;
                 proxy_set_header Host www.目标.com;
                 proxy_set_header X-Forwarded-Proto https;
                 proxy_pass http://www.目标.com;
                 proxy_set_header Accept-Encoding "";
                 }      
                 access_log  off;
         }
原帖由 licess 于 2012-9-17 15:51 发表
这个不大了解,可能和https://www.vpser.net/manage/namecheap-free-ssl-nginx.html 这个差不多吧

[ 本帖最后由 wozhidao 于 2012-9-18 22:16 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|VPS侦探 ( 鲁ICP备16040043号-1 )

GMT+8, 2024-11-17 17:30 , Processed in 0.029046 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表