English | VPS常用软件下载 |
  • 美国VPS主机推荐
  • |
  • 代购服务
  • |
  • 10美元以下VPS
  • |
  • VPS新手指南/教程
  • |
  • 留言板
  • |
  • 关于VPSer
  • | VPS论坛 | 登录 |

    Linux VPS上配置Nginx反向代理

    2010年04月12日 下午 | 作者:

    Nginx是一款高性能的HTTP和反向代理服务器。VPS侦探以前已经多次介绍过Nginx的HTTP应用,比如lnmp一键安装包。下面要说的是Nginx的反向代理功能

    反向代理是什么?

    反向代理指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部(或其他)网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接的客户端。

    实现方法:

    比如我想在VPS上建一个t.vpser.net的域名用来反向代理访问twitter,首先在域名注册商那里的域名管理上为域名t.vpser.net添加A记录到VPS的IP上,再在VPS上修改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;
            	}
    	}

    添加好后,先执行:/usr/local/nginx/sbin/nginx -t 检查配置是否正常,如果显示:the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok      configuration file /usr/local/nginx/conf/nginx.conf test is successful 则正常,否则按错误提示修改配置。

    再执行 kill -HUP `cat /usr/local/nginx/logs/nginx.pid` 使配置生效,域名解析生效后就可以通过t.vpser.net 访问twitter了。

    >>转载请注明出处:VPS侦探 本文链接地址:http://www.vpser.net/manage/linux-vps-nginx-reverse-proxy.html

    相关文章:

    VPS侦探推荐:

    DiaHostingLinodePhotonVPSVPSYou瑞豪开源ECVPS美国VPS主机
    欢迎加入VPS侦探论坛交流:http://bbs.vpser.net

    评论(27 条评论)

    1. 反代任何网站,都是只反代首页,里面的链接都是原网站的,老大,请问如何解决啊

      VPSer 回复:

      @asdfasd, 这个得看网站类型了,只能说是反代一部分。
      替换里面的链接就需要再安装第三方模块,http://wiki.nginx.org/HttpSubsModule#Installation

    2. 反向代理twitter只能打开,不能登录呢?

      VPSer 回复:

      @deardongdong, 可能是还需要连接其他的服务器地址

    3. 军哥 请教几个问题 偶不太懂,如果问题比较白痴 见谅哈 :D :D

      在VPS下添加了多个虚拟主机,在/usr/local/nginx/conf/vhost 下有相应的XXX.COM.CONF
      是不是在/usr/local/nginx/conf/nginx.conf添加了上面这段代码后用 XXX.COM.CONF就失效了?
      或者是修改在XXX.COM.CONF,去掉原先所有代码,添加这段代码?
      做了反向代理会影响网站上的百度GG广告吗?

      VPSer 回复:

      @晓天, 不管是要不要用XXX.COM作为要使用的域名, 都可以直接编辑XXX.COM.conf
      添加上上面的代码。
      只要配置对就行

    4. 我设置了a.com代理b.com,然后我成功访问了b.com,为何b.com上的页面内容里包含b.com的链接变成a.com了?如http://item.b.com/?id=123 -》 http://item.a.com/?id=123请问VPS侦探是哪个选项在作用? :roll: :roll:

      VPSer 回复:

      @kwkw, 好像没有选项控制。

    5. [emerg]: unknown directive "server" in /usr/local/nginx/conf/nginx.conf:92
      configuration file /usr/local/nginx/conf/nginx.conf test failed

      :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry:

      VPSer 回复:

      @午夜客, /usr/local/nginx/conf/nginx.conf 里server段有错误

    6. php没有安装成功!!!502错误http://chlumsan.vserver.cz/

    7. server
      {
      listen 80;
      server_name xxxxxxxx.vserver.cz;
      index index.html index.htm index.php;
      root /home/wwwroot;

      location ~ .*\.(php|php5)?$
      {
      fastcgi_pass unix:/tmp/php-cgi.sock;
      fastcgi_index index.php;
      include fcgi.conf;

      ====================
      怎么和你那代码不一样啊?

      VPSer 回复:

      @jxyk2007, 一个是跑php用,一个是跑反向代理的肯定不一样。

    8. 好像不行啊,得到的效果和301一样

    9. GHS的IP越来越少了,只能用反向代理穿越了

    10. max_children 我已经增大的
      本来一键安装包默认的时候 都是N久打不开 然后现实504的……
      后来我把max_children 增大以后 才是大概1分钟左右现实502的

    11. 哇 nginx的反向代理配置这么简单啊
      vpser能去我的博客 帮我简单看一下 我的第一篇文章 提问的 问题吗
      我有一个网站程序是UCHOME2.0改的 在LNMP一键安装包下用不了 但是在vpsyou的LAMP搭建文档下(http://www.vpsyou.com/centos-5-compile-install-apache-php-mysql/)安装后使用正常
      这是为什么啊?
      看那个程序的首页貌似 数据库查询非常多 不知道是不是这个原因 按照vpsyou那篇文章搭建的LAMP 其中有一部是更改mysql的最大连接数的 但是我后来在LNMP上也修改了 还是不行
      请你帮忙看一下~谢谢

      VPSer 回复:

      @海无影, 502的话也有可能是php-fpm.conf里的max_children 值设置的太小不够用。

    12. 已经解决了。谢谢vpser管理员。感谢。 :D :D

    13. 怎么自动修改了,这一行的代码为http://littz.com/ghs-littz-com-alternative-ghs-google-com.html在这里的第三段代码。谢谢您。

    14. 您好,管理员。我在修改nginx.conf文件时。
      加入如下代码:
      location / {
      proxy_redirect off;
      proxy_set_header Host $host;
      proxy_pass http://ghs;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_redirect false;
      }

      但是提示这一行:proxy_pass http://ghs;
      有问题:
      [emerg]: invalid number of arguments in "proxy_pass" directive in /usr/local/nginx/conf/nginx.conf:118
      configuration file /usr/local/nginx/conf/nginx.conf test failed
      请问,该怎么修改?谢谢您。
      原始文件的地址:http://littz.com/ghs-littz-com-alternative-ghs-google-com.html
      谢谢您。

    15. 这样代理,图片都不会显示出来,其余OK

    16. 您好,请问:“再在VPS上修改Nginx的配置文件”指的是哪个文件,我是新手,比较不懂。谢谢您。

      VPSer 回复:

      @风铃, /usr/local/nginx/conf/nginx.conf

    17. 发现好多地方还是回直连到被代理的网站原始url,正如一楼所述,不知道这是怎么回事?

    18. 是可以访问了,但是点击任何一个连接,马上就无效了。。

    19. 哈哈,原来这就叫反向代理,很荐

    发表评论

    *必填

    *必填 (不会被公开)

    :D :-) :( :o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: