micromax 发表于 2018-12-30 13:06:09

Nginx+Keepalived+Proxy_Cache 配置高可用集群和高速缓存

环境:
CentOSrelease 6.5 x86_64    192.168.100.90
CentOSrelease 6.5 x86_64    192.168.100.91

[*]在主备服务器上部署Nginx

[*]下载
#wget http://nginx.org/download/nginx-1.6.3.tar.gz
#wget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz

[*]安装
# yum install gcc openssl-devel pcre-devel zlib-devel
# tar -zxvf ngx_cache_purge-2.3.tar.gz
# tar –zxvf nginx-1.6.3.tar.gz
# cd nginx-1.6.3
# ./configure \
--prefix=/usr \
--sbin-path=/usr/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/var/run/nginx/nginx.pid\
--lock-path=/var/lock/nginx.lock \
--user=nginx \
--group=nginx \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-http_flv_module \
--with-http_gzip_static_module \
--with-http_realip_module\
--http-client-body-temp-path=/var/tmp/nginx/client/ \
--http-proxy-temp-path=/var/tmp/nginx/proxy/ \
--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \
--add-module=../ngx_cache_purge-2.3
# vim /etc/nginx/nginx.conf
usernginx nginx;
worker_processes16;


#error_loglogs/error.log;
#error_loglogs/error.lognotice;
#error_loglogs/error.loginfo;


worker_rlimit_nofile 61200;


pid      /var/run/nginx.pid;




events {
use epoll;
worker_connections61200;
}






http {
include       mime.types;
default_typeapplication/octet-stream;


#log_formatmain'$remote_addr - $remote_user [$time_local]"$request" '
#                  '$status $body_bytes_sent "$http_referer"'
#                  '"$http_user_agent""$http_x_forwarded_for"';


#access_loglogs/access.logmain;
charset          utf-8;


server_names_hash_bucket_size    128;


client_header_buffer_size   32k;


large_client_header_buffers432k;


client_max_body_size 300M;




sendfile      on;
tcp_nopush   on;
tcp_nodelay    on;


client_body_buffer_size 512k;
proxy_connect_timeout   5;
proxy_read_timeout   60;
proxy_send_timeout5;
proxy_buffer_size   16k;
proxy_buffers4 64k;
proxy_busy_buffers_size   128k;
proxy_temp_file_write_size 128k;
#keepalive_timeout0;
keepalive_timeout60;


gzipon;
gzip_min_length1k;
gzip_buffers   4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types       text/plain application/x-javascript text/cssapplication/xml;
gzip_vary on;




proxy_temp_path      /var/tmp/proxy_temp_dir 1 2;
proxy_cache_path   /var/tmp/proxy_cache_dirlevels=1:2 keys_zone=cache_one:400m inactive=1d max_size=30g;


#upstream backend {
#ip_hash;
# server 192.168.100.90:8080;
#server 192.168.100.91:8080;
# }


upstream backend {
server 192.168.100.90:8080 weight=1 max_fails=2fail_timeout=30s;
server 192.168.100.91:8080 weight=1 max_fails=2 fail_timeout=30s;
}






server {
listen       80;
server_namelocalhost;


#charset koi8-r;
charset utf-8;
#access_loglogs/host.access.logmain;
location / {
index index.jsp index.htm index.html;
proxy_next_upstream http_502 http_504 error timeoutinvalid_header;
proxy_cache cache_one;
proxy_cache_valid 200 304 12h;
proxy_cache_key $host$uri$is_args$args;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://backend;
expires 1d;
}


#location / {
#    root   html;
#    indexindex.html index.htm;
#}


#error_page404            /404.html;


# redirect server error pages to the static page /50x.html
#
error_page   500 502 503 504/50x.html;
location = /50x.html {
root   html;
}


# proxy the PHP scripts to Apache listening on127.0.0.1:80
#
#location ~ \.php$ {
#    proxy_pass   http://127.0.0.1;
#}


# pass the PHP scripts to FastCGI server listening on127.0.0.1:9000
#
#location ~ \.php$ {
#    root         html;
#    fastcgi_pass   127.0.0.1:9000;
#    fastcgi_indexindex.php;
#    fastcgi_paramSCRIPT_FILENAME /scripts$fastcgi_script_name;
#    include      fastcgi_params;
#}


location ~ .*\.(php|jsp|cgi)?$ {
proxy_set_header Host $host;
proxy_set_headerX-Forwarded-For $remote_addr;
proxy_pass http://backend;
}


#log_formatmain'$remote_addr - $remote_user[$time_local] "$request" '
#'$status $body_bytes_sent "$http_referer"'
#'"$http_user_agent""$http_x_forwarded_for"';
#access_loglogs/access.logmain;






# deny access to .htaccess files, if Apache's documentroot
# concurs with nginx's one
#
#location ~ /\.ht {
#    denyall;
#}
}








#
# another virtual host using mix of IP-, name-, and port-basedconfiguration
#
#server {
#    listen       8000;
#    listen       somename:8080;
#    server_namesomenamealiasanother.alias;


#    location / {
#      root   html;
#      indexindex.html index.htm;
#    }
#}


# HTTPS server
#
#server {
#    listen       443 ssl;
#    server_namelocalhost;


#    ssl_certificate      cert.pem;
#    ssl_certificate_keycert.key;


#    ssl_session_cache    shared:SSL:1m;
#    ssl_session_timeout5m;


#    ssl_ciphersHIGH:!aNULL:!MD5;
#    ssl_prefer_server_cipherson;


#    location / {
#      root   html;
#      indexindex.html index.htm;
#    }
#}
}




  Keepalived




页: [1]
查看完整版本: Nginx+Keepalived+Proxy_Cache 配置高可用集群和高速缓存