Nginx 实现简单的负载均衡
架构
Nginx负载均衡器:192.168.14.128
WEB服务器:192.168.14.23,192.168.14.24 (采用nfs 文件存放站点,或者也可以各自存放通过sync之类同步)
Mysql: 后端,可以通过主从之类分担
安装nginx:
前置:
- yum -y install pcre pcre-devel openssl-devel zlib-devel gcc gcc-c++
- wget http://blog.s135.com/soft/linux/nginx_php/pcre/pcre-8.10.tar.gz
- tar zxvf pcre-8.10.tar.gz
- cd pcre-8.10/
- ./configure
- make && make install
- cd ../
- tar zxvf nginx-1.2.6.tar.gz
- cd nginx-1.2.6/
- ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
- make && make install
- cd ../
备份初始配置
- mv /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bak
创建配置文件
- vim /usr/local/nginx/conf/nginx.conf
- user www www;
- worker_processes 8;
- error_log /usr/local/nginx/logs/nginx_error.log crit;
- pid /usr/local/nginx/logs/nginx.pid;
- worker_rlimit_nofile 51200;
- events
- {
- use epoll;
- worker_connections 51200;
- }
- http
- {
- include mime.types;
- default_type application/octet-stream;
- #charset gb2312;
- server_names_hash_bucket_size 128;
- client_header_buffer_size 32k;
- large_client_header_buffers 4 32k;
- sendfile on;
- tcp_nopush on;
- keepalive_timeout 60;
- tcp_nodelay on;
- #gzip on;
- #gzip_min_length 1k;
- #gzip_buffers 4 16k;
- #gzip_http_version 1.0;
- #gzip_comp_level 2;
- #gzip_types text/plain application/x-javascript text/css application/xml;
- #gzip_vary on;
- upstream www.test.com {
- server 192.168.14.24:80;
- server 192.168.14.23:80;
- }
- #定义日志格式
- log_format access '$remote_addr - $remote_user [$time_local] $request '
- '"$status" $body_bytes_sent "$http_referer" '
- '"$http_user_agent" "$http_x_forwarded_for"';
- server
- {
- listen 80;
- server_name localhost;
- #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
- proxy_set_header X-Forwarded-For $remote_addr;
- location / {
- root /data0/data_www/www.test.com;
- index index.html index.htm index.php;
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_pass http://www.test.com;
- proxy_redirect off;
- access_log /usr/local/nginx/logs/access.log access;
- }
- }
- }
测试是否生效 ,在23 和24两台上分别建立相同文件index.html 内容分别为192.168.14.23
192.168.30.24
访问相同域名 得到不同内容