负载均衡的目的是为了解决单个节点压力过大,造成Web服务响应过慢,严重的情况下导致服务瘫痪,无法正常提供服务。本实例通过使用Nginx作为负载均衡器,Tomcats作为后台Web服务器,部署一个高可用的Web应用,应用架构图如下所示:
安装Tomcats并启动应用
Tomcats的安装和启动非常简单,读者自行百度,这里不做介绍。
Nginx配置
进入Nginx配置文件目录(本实例的Nginx目录在/usr/local/nginx/conf/),打开nginx.conf,写入如下内容
worker_processes 1;
pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
sendfile on;
keepalive_timeout 65;
gzip on;
upstream ronblog.com {
server 192.168.199.149:80 weight=1;
server 192.168.199.149:81 weight=2;
server 192.168.199.149:82 weight=3;
}
server {
listen 80;
server_name ronblog;
location / {
proxy_pass http://ronblog.com;
proxy_redirect default;
}
location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|css|js)$ {
proxy_pass http://ronblog.com;
add_header Last-Modified $date_gmt;
add_header Via $server_addr;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
保存配置文件并退出,进入sbin目录(/usr/local/nginx/sbin)下使用如下命令启动nginx
./nginx
nginx启动完毕后使用ps命令查看是否启动成功
[root@localhost sbin]# ps -ef|grep nginx
root 3557 1 0 15:08 ? 00:00:00 nginx: master process ./nginx
nobody 3558 3557 0 15:08 ? 00:00:00 nginx: worker process
root 3638 2921 0 15:37 pts/0 00:00:00 grep --color=auto nginx
Nginx启动成功之后,在浏览器中输入Nginx服务器的ip地址即可出现结果。
停止其中的一台或者两台Tomcats服务,应用依然可用。
注意:百度如何使用Nginx配置负载均衡服务器时,很多文章都没有加如下配置,这样会导致css、js、图片无法加载,出现加载静态文件时404错误,所以在nginx.conf文件中,需要加如下配置:
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;