采用nginx实现反向代理,配置集群,实现软F5的功能。
nginx.conf的配置如下:
worker_processes 8;
error_log /home/soco/share/nginx/logs/nginx_error.log crit;
pid /home/soco/share/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;
proxy_set_header X-Forwarded-For $remote_addr;
log_format access '$remote_addr - $remote_user [$time_local] $request '
'"$status" $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
upstream socogame {
server 192.168.2.134:8082;
}
upstream socologin
{
server 192.168.2.134:8081;
}
server
{
listen 192.168.2.218:80;
server_name soco;
location /
{
proxy_pass http://socogame;
}
#...
access_log /home/soco/share/nginx/logs/access.log access;
}
}
但我碰到一个问题,在jsp画面上跳转时,request.getContext(), 得到的不是预期的http://IP:PORT/gamemanager, 而是upstream的名字--socogame,不解。。。。。
对keepalived的,我的理解是,他做了个lVS的池子,里面放的是各个nginx服务器,定时对各nginx服务器进行健康检查,对检查通过的服务器根据权重分发请求,客户端请求的keepalived的浮动ip, 里面的情况对用户透明。。