rinald_未来往事

Nginx反向代理安装配置 upstream模块使用

Apache/Nginx
安装配置Nginx反向代理,Nginx在upstream服务器的反向代理配置,upstream模块介绍,本文基于Debian6 & Debian7  Nginx 1.8编写。

Nginx 、反向代理服务介绍

Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 服务器。

反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。

Nginx因其出色的处理并发连接的能力,越来越多地作为一个反向代理服务器被使用。所谓反向代理,即把Nginx置于用户接入的最前端,监听用户发来的请求,并把它们转发给相应的后端服务器来处理具体的请求。后端服务器可以是缓存服务器(如Varnish、Squid)或是处理动态/静态请求的服务器(如apache/Nginx/lighttpd),在这里不作深入讨论。本文对Nginx反向代理、Nginx在upstream服务器的设置和"proxy_pass"的功能在代码层面进行分析,并讨论在实际生产环境中的使用。

服务安装配置

1、安装 Nginx 与 ngx_http_sub_module 模块
ngx_http_sub_module模块是一个过滤器,它修改网站响应内容中的字符串,这个模块已经内置在nginx中,但是默认未安装,需要安装需要加上配置参数:--with-http_sub_module。反向代理任何网站,一般都只能反向代理首页,如果要替换里面的链接就需要再安装第三方模块with-http_sub_module模块,一般都是下载后编译安装,但是在debian下建议使用dotdeb源来安装nginx。

#追加dotdeb源
echo "deb http://packages.dotdeb.org squeeze all" >>/etc/apt/sources.list
echo "deb-src http://packages.dotdeb.org squeeze all" >>/etc/apt/sources.list
#nginx-full这个包里面包含着所有需要用到的模块
apt-get update
apt-get install nginx-full

至此,安装完毕。如果你在安装过程中遇到错误:Depends libssl0.9.8 (>= 0.9.8m-1) but it is not installable,请点击这里参考本博客另外一篇文章

2、配置Nginx反向代理模式
server {
listen       80;
server_name  g.fity.cn;
index index.php index.html index.htm;       #默认首页

location / {
     #sub_filter http://www.google.com  http://g.fity.cn; #替换URL
     sub_filter_once off; #搜索替换全部行
     proxy_pass http://www.google.com;
     proxy_set_header X-Real-IP $remote_addr;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     proxy_set_header Accept-Encoding ""; #清除编码
      }
  }
配置说明:创建一个g.fity.cn的域名用来反向代理访问www.google.com。

3、至此配置完毕,重启Nginx服务
#/usr/sbin/nginx -t #检查语法是否有错误
#/etc/init.d/nginx restart


配置进阶 - upstream模块

upstream模块使nginx将跨越单机的限制,完成网络数据的接收、处理和转发。
数据转发功能,为nginx提供了跨越单机的横向处理能力,使nginx摆脱只能为终端节点提供单一功能的限制,而使它具备了网路应用级别的拆分、封装和整合的战略功能。在云模型大行其道的今天,数据转发使nginx有能力构建一个网络应用的关键组件。当然,一个网络应用的关键组件往往一开始都会考虑通过高级开发语言编写,因为开发比较方便,但系统到达一定规模,需要更重视性能的时候,这些高级语言为了达成目标所做的结构化修改所付出的代价会使nginx的upstream模块就呈现出极大的吸引力,因为他天生就快。作为附带,nginx的配置提供的层次化和松耦合使得系统的扩展性也可能达到比较高的程度。如果你对upstream模块比较感兴趣可以查看本博客另外一篇文章《Nginx upstream模块》。

原文作者:rinald
原文地址:http://fity.cn/post/548.html
互联网技术更新较快,本站很多文章具有实效性,我会及时更新原文,但转载的文章无法通知更新。为了不给读者造成困惑或误导,请您在转载时保留此出处信息,尊重别人也是尊重自己。

发表评论

必填

选填

选填

必填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。