nginx+tomcat*2实现负载均衡
安装准备
安装tomcat
安装gcc
安装make
yum -y install gcc automake autoconf libtool make
安装pcre和zlib这两个包:
yum install -y pcre-devel
yum install -y zlib-devel
安装nginx1.12.2
去官网下载nginx的tar.gz的包:http://nginx.org/en/download.html
下载后解压安装tar -xvzf nginx-1.12.2.tar.gz cd nginx-1.12.2 ./configure --prefix=/usr/local/nginx #执行配置的命令 make && make install #当前位置代码编译
nginx配置
vi /usr/local/nginx/conf/nginx.conf #更改端口
server{ listen: 8089 server_name localhost }
启动nginx
方式一:/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
方式二:/usr/local/nginx/sbin/nginx -t
配置:
vi /usr/local/nginx/conf/nginx.conf
第一个server前面加:(根据配置)upstream tomcat_test { server localhost:8080 weight=1; server localhost:8082 weight=1; } server { listen 8089; server_name localhost; #charset koi8-r;
注释Local:
#location / { #access_log logs/host.access.log main; #location / { # root html; # index index.html index.htm; #}
添加location
location / { proxy_pass http://tomcat_test; proxy_redirect off; proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; proxy_max_temp_file_size 0; proxy_connect_timeout 90; #连接前面的服务器超时时间 proxy_send_timeout 90;#请求转发数据报文的超时时间 proxy_read_timeout 90;#读取超时时间 proxy_buffer_size 4k; # 缓冲区的大小 proxy_buffers 4 32k; # proxy_busy_buffers_size 64k; # #proxy_buffers缓冲区,网页平均在32k以下的 proxy_temp_file_write_size 64k; ##高负荷下缓冲大小(proxy_buffers*2) }
location:详解:
location / { proxy_pass http://tomcat_pool; #转向tomcat处理 proxy_redirect off;#是否跳转 proxy_set_header Host $host; #请求要转发的host proxy_set_header X-Real-IP $remote_addr;#请求的远程地址 这些在浏览器的header都可看,不一一解释 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; proxy_max_temp_file_size 0; proxy_connect_timeout 90; #连接前面的服务器超时时间 proxy_send_timeout 90;#请求转发数据报文的超时时间 proxy_read_timeout 90;#读取超时时间 proxy_buffer_size 4k; # 缓冲区的大小 proxy_buffers 4 32k; # proxy_busy_buffers_size 64k; # #proxy_buffers缓冲区,网页平均在32k以下的 proxy_temp_file_write_size 64k; ##高负荷下缓冲大小(proxy_buffers*2) }
加入服务
vi /usr/lib/systemd/system/nginx.service
创建nginx.service加入以下内容:[Unit] Description=nginx - web server After=network.target remote-fs.target nss-lookup.target [Service] Type=forking PIDFile=/usr/local/nginx/logs/nginx.pid ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf ExecReload=/usr/local/nginx/sbin/nginx -s reload ExecStop=/usr/local/nginx/sbin/nginx -s stop ExecQuit=/usr/local/nginx/sbin/nginx -s quit PrivateTmp=true [Install] WantedBy=multi-user.target
相关操作:
systemctl start nginx.service systemctl stop nginx.service systemctl enable nginx