码迷,mamicode.com
首页 > 其他好文 > 详细

Nginx高可用反向代理搭建

时间:2014-11-17 19:42:35      阅读:256      评论:0      收藏:0      [点我收藏+]

标签:代理服务器   nginx   高可用nginx反向代理   

Nginx高可用反向代理搭建

Nginx简介

Nginx ("engine x") 是一个高性能的 HTTP  反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器 Nginx 是由 Igor Sysoev 俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本0.1.0发布于2004104日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。

Nginx 可以在大多数 Unix like OS 上编译运行,并有 Windows 移植版。 Nginx 1.4.0稳定版已经于2013424日发布,一般情况下,对于新建站点,建议使用最新稳定版作为生产版本,已有站点的升级急迫性不高。Nginx 源代码使用 2-clauseBSD-like license

Nginx 是一个很强大的高性能Web反向代理服务器,它具有很多非常优越的特性:

在高连接并发的情况下,NginxApache服务器不错的替代品:Nginx美国是做虚拟主机生意的老板们经常选择的软件平台之一。能够支持高达 50,000 个并发连接数的响应,感谢Nginx为我们选择了 epoll andkqueue作为开发模型。

 

Nginx环境搭建准备

主机名    Os         IP         用途         Vip

NginxA    Rhel6.2      192.168.2.41 Nginx主节点A 192.168.2.40

NginxB    Rhel6.2   192.168.2.41 Nginx节点B 192.168.2.40

ClusterSer WinSer2008 192.168.2.21 模拟后台集群server

Nginx安装部署

# yum install gcc gcc-c++ autoconf automakezlib zlib-devel openssl openssl-devel pcre-devel

到官网下载Nginx

上传到/opt

# tar zxvf nginx-1.6.0.tar.gz

# cd nginx-1.6.0

#./configure –-prefix=/u01/nginx1.6.0 --with-http_ssl_module--with-http_gunzip_module --with-http_gzip_static_module  --with-http_stub_status_module

# make

# make install

 

Nginx基本配置

Nginx大致可以理解分为四个板块:全局模块,事件模块,http模块,以及server模块

 

切换到/u01/nginx1.6.0/conf下面,编辑nginx配置文件nginx.conf

#全局块

worker_processes  1;              #配置允许生产的工作进程数

error_log logs/error.log  notice;    #配置错误日志存放路径及记录级别

pid       logs/nginx.pid;         #配置nginx进程pid存放路径

#事件块

events {

worker_connections  65535;    #配置最大连接数

use epoll;                    #使用epoll事件驱动模型

}

HTTP模块

http {

   include       mime.types;             #引用MIME-Type

default_type  application/octet-stream;   #配置用于处理前端请求的MIME类型

#日志存放路径及日志格式

access_log    logs/access.log combined;                                  

    log_format main  ‘$remote_addr - $remote_user[$time_local] "$request" ‘

                      ‘$status $body_bytes_sent"$http_referer" ‘

                      ‘"$http_user_agent""$http_x_forwarded_for"‘;

access_log  logs/access.log  main;

send_timeout  120s                   #配置客户连接等待响应时间

sendfile        on;                   #支持sendfile方式传输文件

keepalive_timeout  65;                #配置连接超时时间

clinet_hearder_buffer_size4k;           #配置请求头部数据大小

#配置压缩

gzip  on;

gzip_min_length1024

gzip_buffers 324k

gzip_comp_level 2

gzip_typestext/plain application/x-javascript text/css application/xml;

gzip_vary on;

gunzip_staticon;

                          

SERVER

server {

       listen       80;

       server_name  cluster;

       charset koi8-r;

       access_log  logs/cluster.access.log  main;

       location / {

           root   html;

           index  index.html index.htm;

        }

       error_page  404              /404.html;

       #redirect server error pages to the static page /50x.html       

       }

 

Nginx反向代理配置

在配置文件中如下修改,在server模块前增加upstream转发,并且修改location配置

upstream cluster {

     ip hash;

     server 192.168.2.21:80;

     }

SERVER

server {

       listen       80;

       server_name  cluster;

       charset koi8-r;

       access_log  logs/cluster.access.log  main;

       location / {

           proxy_pass http://cluster;

           proxy_connect_timeout 120s;

           proxy_read_timeout 120s;

           proxy_set_header host $host;

           proxy_set_hearder x-Real-IP $remote_addr;

           proxy_set_header x-Forwarded-For $proxy_add_x_forwarded_for;

       }

       error_page  404              /404.html;

       #redirect server error pages to the static page /50x.html       

       }

Keepalive配合使用

确保keepalive需要环境包都有安装:

yum install gcc gcc-c++ openssl-developenssl kernel-devel kernel popt-devel,libnl-devel

下载安装keepalive

# tar keepalived-1.1.20.tar.gz

# ./configure –prefix=/u01/keepalive

# make

# make install

# cp /u01/keepalived-1.2.13/sbin/keepalived/usr/sbin

# cp/u01/keepalived-1.2.13/etc/sysconfig/keepalived /etc/sysconfig

# cp/u01/keepalived-1.2.13/etc/rc.d/init.d/keepalived /etc/init.d

# mkdir /etc/keepalived

# cp/u01/keepalived-1.2.13/etc/keepalived/keepalived.conf /etc/keepalived

 

A节点(192.168.2.41)配置文件如下:

global_defs {

notification_email {   }

notification_email_from

smtp_server smtp.qq.com

smtp_connect_timeout 30

router_id LVS_DEVEL

}

 

vrrp_instance nginxA{

state MASTER

interface eth0

track_interface {

eth1

}

 

virtual_router_id 1

priority 200

advert_int 1

authentication {

auth_type PASS

auth_pass 123

}

virtual_ipaddress {

192.168.2.40/24

192.168.2.41/24

192.168.2.42/24

}

}

 

B节点(192.168.2.42)配置文件如下:

global_defs {

notification_email {   }

notification_email_from

smtp_server smtp.qq.com

smtp_connect_timeout 30

router_id LVS_DEVEL

}

 

vrrp_instance nginxB{

state BACKUP

interface eth0

track_interface {

eth1

}

 

virtual_router_id 1

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass 123

}

virtual_ipaddress {

192.168.2.40/24

192.168.2.41/24

192.168.2.42/24

}

}

 

#根据自己的网络环境,修改下配置文件

service keepalived start

排查看日志,/var/log/message

注意:priority一般master大于backup的值!


本文出自 “Jeremy运维架构” 博客,请务必保留此出处http://jeremybale.blog.51cto.com/3341343/1577510

Nginx高可用反向代理搭建

标签:代理服务器   nginx   高可用nginx反向代理   

原文地址:http://jeremybale.blog.51cto.com/3341343/1577510

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!