Nginx-1.6.3反向代理

源码安装nginx

cat /etc/redhat-release
uname -rm
yum install pcre-devel openssl-devel -y
rpm -qa pcre pcre-devel openssl openssl-devel
groupadd -g 888 nginx
useradd nginx -u 888 -g nginx -s /sbin/nologin -M
mkdir -p /server/tools
cd /server/tools
wget -q http://nginx.org/download/nginx-1.6.3.tar.gz
tar xf nginx-1.6.3.tar.gz
cd nginx-1.6.3
./configure --user=nginx --group=nginx --prefix=/application/nginx-1.6.3 --with-http_stub_status_module --with-http_ssl_module
make
make install
ln -s /application/nginx-1.6.3 /application/nginx
/application/nginx/sbin/nginx -t
/application/nginx/sbin/nginx
ps -ef | grep nginx
lsof -i :80 
curl 10.0.0.41

 单节点池转发

worker_processes  1;
error_log  logs/error.log;
    events {
        worker_connections  1024;
    }
    http {
        include       mime.types;
        default_type  application/octet-stream;
        sendfile        on;
        keepalive_timeout  65;      
        upstream www_server_pools {                             
            server 172.16.1.13:80 weight=1;
            server 172.16.1.14:80 weight=1;

        }
        server {
            listen       80;
            server_name  www.peterwang.cn;
            location / {                        
                proxy_pass http://www_server_pools;                           
                include proxy.conf;
            }          
        }
    }

vim /application/nginx/conf/proxy.conf

proxy_set_header Host $host;  #在请求头中加入host字段信息
proxy_set_header X-Forwarded-For $remote_addr; #在请求头中加入获取的客户端IP字段信息
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
#接收到错误状态码时,会将用户请求转发给正常工作的RS服务器
proxy_connect_timeout 60;
proxy_send_timeout 60;
proxy_read_timeout 60;
proxy_buffer_size 32k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;

 多节点池转发

1.根据URL

worker_processes  1;
    events {
        worker_connections  1024;
    }
    http {
    	include       mime.types;
      	default_type  application/octet-stream;
    	sendfile        on;
    	keepalive_timeout  65;
    	upstream static_server_pools {
            server 10.0.0.7:80 weight=1;

   	}
    	upstream upload_server_pools {
            server 10.0.0.8:80 weight=1;

    	}   
        server {
            listen       80;
            server_name  www.peterwang.org;
            location /static/ {
            proxy_pass http://static_server_pools;
            include proxy.conf;
            }
        location /upload/ {
             proxy_pass http://upload_server_pools;
             include proxy.conf;
            }
        }  
    }

vim /application/nginx/conf/proxy.conf

proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_connect_timeout 60;
proxy_send_timeout 60;
proxy_read_timeout 60;
proxy_buffer_size 32k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;

2.根据用户设备

worker_processes  1;
    events {
        worker_connections  1024;
    }
    http {
    	include       mime.types;
    	default_type  application/octet-stream;
    	sendfile        on;
    	keepalive_timeout  65;
    	upstream static_server_pools {
            server 10.0.0.7:80 weight=1;

    	}
    	upstream upload_server_pools {
            server 10.0.0.8:80 weight=1;

	}
   	server {
            listen       80;
            server_name  www.etiantian.org;
            location / {
            	if ($http_user_agent ~* "MSIE")
        	{
            	proxy_pass http://static_server_pools;
        	}
            	if ($http_user_agent ~* "Firefox")
        	{
            	proxy_pass http://upload_server_pools;
        	}
            	include proxy.conf;
            }
	}
}

 节点监控模块安装

#nginx_upstream_check_module是由淘宝技术团队开发的用于监控集群节点状态的模块。
cd /server/tools
wget https://github.com/yaoweibin/nginx_upstream_check_module/archive/master.zip
unzip master.zip 
cd nginx-1.6.3
patch -p1 < ../nginx_upstream_check_module-master/check_1.5.12+.patch 
./configure --user=nginx --group=nginx --prefix=/application/nginx-1.6.3 \
--with-http_stub_status_module --with-http_ssl_module --add-module=../nginx_upstream_check_module-master/
make
mv /application/nginx/sbin/nginx{,.ori}
cp ./objs/nginx /application/nginx/sbin/
/application/nginx/sbin/nginx -t
/application/nginx/sbin/nginx -V

cd /application/nginx
vim conf/nginx.conf
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    upstream www_server_pools {
        server 10.0.0.7:80 weight=1;
        server 10.0.0.8:80 weight=1;
        check interval=3000 rise=2 fall=5 timeout=1000 type=http;
    }
    server {
        listen       80;
        server_name  www.etiantian.org;
        location / {
            root   html;
            index  index.html index.htm;
            proxy_pass http://www_server_pools;
            include proxy.conf;
        }
        location /status/ {
            check_status;
            access_log off;
        }    

sbin/nginx -t
sbin/nginx -s stop
sbin/nginx

 

posted @ 2017-09-14 09:33  Peterer~王勇  阅读(437)  评论(0编辑  收藏  举报