Nginx实现负载均衡(2013-5-21 13:43)
1.挂载光盘,删除本地yum库文件,构建新的yum仓库文件
[root@tdoa lnmp_oa]# mount /dev/cdrom /mnt/
mount: block device /dev/cdrom is write-protected, mounting read-only
[root@tdoa ~]# rm -f /etc/yum.repos.d/*
[root@tdoa ~]# touch /etc/yum.repos.d/local.repo
[root@tdoa ~]# cat > /etc/yum.repos.d/local.repo << EOF
> [base]
> name=base
> baseurl=file:///mnt/
> gpgcheck=0
> enabled=1
> EOF
[root@tdoa ~]# yum clean all
Loaded plugins: fastestmirror, security
Cleaning up Everything
Cleaning up list of fastest mirrors
2.yum安装系统基本构成所需依赖文件
[root@tdoa ~]# yum -y install gcc gcc-c++ gcc-g77 openssl-devel libtool readline-devel libxml2 libxml2-devel autoconf automake gd libjpeg libjpeg-devel libpng libpng-devel libmcrypt* libtool-ltdl-devel* freetype freetype-devel fiex* zlib zlib-devel glibc glibc-devel glib2 glib2-devel openldap openldap-devel nss_ldap ncurses-devel openldap-clients openldap-servers install samba-* system-config-samba-*
3.建立log目录、数据文件目录、附件目录
[root@tdoa ~]# /usr/sbin/groupadd tdoa
[root@tdoa ~]# /usr/sbin/useradd -g tdoa tdoa
[root@tdoa ~]# mkdir -p /usr/local/tdoa/data5
[root@tdoa ~]# mkdir -p /usr/local/tdoa/logs/nginx
[root@tdoa ~]# mkdir -p /usr/local/tdoa/logs/mysql
[root@tdoa ~]# mkdir -p /usr/local/tdoa/logs/php
[root@tdoa ~]# mkdir -p /usr/local/tdoa/attach/bak
[root@tdoa ~]# mkdir -p /usr/local/tdoa/bak
[root@tdoa ~]# chown -R tdoa:tdoa /usr/local/tdoa/attach
[root@tdoa ~]# chown -R tdoa:tdoa /usr/local/tdoa/bak
4.编译安装pcre (安装pcre库是为了使nginx支持HTTP Rewrite模块)
[root@tdoa lnmp_oa]# cd down/
[root@tdoa down]# tar zxvf pcre-8.32.tar.gz
[root@tdoa down]# cd pcre-8.32
[root@tdoa pcre-8.32]# ./configure ; make ; make install
5编译安装nginx
[root@tdoa down]# tar zxf nginx-1.2.6.tar.gz
[root@tdoa down]# cd nginx-1.2.6
[root@tdoa nginx-1.2.6]# ./configure --user=tdoa --group=tdoa --prefix=/usr/local/tdoa/nginx --with-http_stub_status_module --with-http_gzip_static_module --with-http_ssl_module --with-http_realip_module ; make ; make install
[root@tdoa conf]# ln -s /usr/local/lib/libpcre.so.1 /lib64/
[root@tdoa conf]# /usr/local/tdoa/nginx/sbin/nginx
[root@tdoa conf]# echo "/usr/local/tdoa/nginx/sbin/nginx" >> /etc/rc.d/rc.sysinit
[root@tdoa nginx-1.2.6]# vi /usr/local/tdoa/nginx/conf/nginx.conf
user tdoa tdoa;
worker_processes 2;
error_log /usr/local/tdoa/logs/nginx/error.log error;
#error_log logs/error.log notice;
#error_log logs/error.log info;
pid /usr/local/tdoa/logs/nginx/nginx.pid;
worker_rlimit_nofile 65535;
events {
use epoll;
worker_connections 65535;
}
http {
include mime.types;
default_type application/octet-stream;
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 /usr/local/tdoa/logs/nginx/access.log main;
keepalive_timeout 120;
tcp_nodelay on;
upstream 192.168.0.44 {
ip_hash;
server 192.168.0.40:80;
server 192.168.0.41:80;
}
server {
listen 80;
server_name tdoa;
location / {
proxy_pass http://192.168.0.44;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}