Nginx+Tomcat*2实现负载均衡


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

  目录