yanglingt 发表于 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,军哥能否给个具体的安装命令

licess 发表于 2012-9-7 16:47:59

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 77行加入-add-module=/root/substitutions4nginx-read-only 注意-add 前要有空格

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

反向代理配置如下:
server {
    listen      80;
    server_name youtube.vpser.net;
    location / {
      sub_filter www.youtube.com youtube.vpser.net;#替换原域名
      sub_filter_once off;
      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.youtube.com;
      proxy_set_header Host www.youtube.com;
      proxy_pass http://www.youtube.com; #被代理网站的网址
      proxy_set_header Accept-Encoding "";
    }
}

重启nginx

yanglingt 发表于 2012-9-7 23:48:30

已经搞定!真的很强大!

pop68315 发表于 2012-9-8 08:48:56

学习了,可是如果域名被封的话,使用反向代理岂不是要换域名了?
或者 被封域名做国内解析,国外部分用另外一个没有被封的域名?

yanglingt 发表于 2012-9-8 16:43:58

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

licess 发表于 2012-9-8 17:04:17

用editplus 应该可以,其他的没用过

dacangku 发表于 2012-9-10 13:00:44

学习下,以后用的着。。。。

wozhidao 发表于 2012-9-17 12:37:18

原帖由 licess 于 2012-9-7 16:47 发表 https://bbs.vpser.net/images/common/back.gif
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 编辑 ]

wozhidao 发表于 2012-9-17 12:47:57

原帖由 licess 于 2012-9-7 16:47 发表 https://bbs.vpser.net/images/common/back.gif
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的话要用什么代码啊?求助啊。

licess 发表于 2012-9-17 15:51:15

回复 9# 的帖子

这个不大了解,可能和https://www.vpser.net/manage/namecheap-free-ssl-nginx.html 这个差不多吧

wozhidao 发表于 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_logoff;
         }原帖由 licess 于 2012-9-17 15:51 发表 https://bbs.vpser.net/images/common/back.gif
这个不大了解,可能和https://www.vpser.net/manage/namecheap-free-ssl-nginx.html 这个差不多吧

[ 本帖最后由 wozhidao 于 2012-9-18 22:16 编辑 ]
页: [1]
查看完整版本: 如何配置反向代理?