Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。
Nginx 可以在大多数 Unix like OS 上编译运行,并有 Windows 移植版。 Nginx 的1.4.0稳定版已经于2013年4月24日发布,一般情况下,对于新建站点,建议使用最新稳定版作为生产版本,已有站点的升级急迫性不高。Nginx 的源代码使用 2-clauseBSD-like license。
Nginx 是一个很强大的高性能Web和反向代理服务器,它具有很多非常优越的特性:
在高连接并发的情况下,Nginx是Apache服务器不错的替代品:Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一。能够支持高达 50,000 个并发连接数的响应,感谢Nginx为我们选择了 epoll andkqueue作为开发模型。
主机名 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 无
# 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大致可以理解分为四个板块:全局模块,事件模块,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
}
在配置文件中如下修改,在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需要环境包都有安装:
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
原文地址:http://jeremybale.blog.51cto.com/3341343/1577510