欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

centos搭建Nginx+Tomcat负载均衡,centosnginx

来源: javaer 分享于  点击 8832 次 点评:146

centos搭建Nginx+Tomcat负载均衡,centosnginx


一、安装jdk1.8:

切换目录

#cd /usr

创建目录

#mkdir java

#cd java

下载jdk

#wget http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz

解压

#tar -zxvf jdk-8u131-Linux-x64.tar.gz

改名

#mv jdk1.8.0_131 jdk1.8

添加到环境变量

#vi /etc/profile

在文件末尾添加

i启动编辑,光标前输入文字

export JAVA_HOME=/usr/java/jdk1.8

export PATH=${JAVA_HOME}/bin:${PATH}

export CLASS_PATH=.:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar

esc退出编辑

:wq保存并退出

使环境变量生效

#source /etc/profile

查看是否安装成功(出现java版本号代表成功)

#java -version


二、安装tomcat8

#cd /usr/local

#wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.15/bin/apache-tomcat-8.5.15.tar.gz

#tar -zxvf apache-tomcat-8.5.15.tar.gz

#mv apache-tomcat-8.5.15 tomcat8

#cd tomcat8/bin

#./starup.sh

将8080端口添加到防火墙例外并重启

#firewall-cmd --zone=public --add-port=8080/tcp --permanent

#firewall-cmd --reload

访问http://IP:8080,出现tomcat欢迎页面代表安装成功


三、安装nginx(在另一台服务器上安装,当然如果是模拟环境,安装在同一台也是可以的)

#cd /usr/local

安装依赖库

#yum -y install gcc-c++

#yum -y install pcre pcre-devel

#yun -y install zlib zlib-devel

#yum -y install openssl openssl-devel libssl-dev

下载nginx

#wget http://nginx.org/download/nginx-1.13.0.tar.gz

解压

#tar -zxvf nginx-1.13.0.tar.gz

改名

#mv nginx-1.13.0 nginx

#cd nginx

编译安装

#./configure --sbin-path=/usr/local/nginx/sbin/nginx --conf-path=/usr/local/nginx/conf/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module

#make

#make install

查看是否安装成功

#whereis nginx

添加到防火墙例外

#firewall-cmd --zone=public --add-port=80/tcp --permanent

#firewall-cmd --reload

启动nginx

#/usr/local/nginx/sbin/nginx

访问http://IP,看到欢迎页面代表安装成功


四、配置nginx反向代理

首先把jdk和tomcat在第三台服务器再安装一次并调通,如果安装在同一台服务器,那就要修改tomcat端口

然后打开nginx配置文件

#cd /usr/local/nginx

#vi conf/nginx.conf

#user  nobody;
worker_processes  2;#处理器数量,根据硬件实际情况设置
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
#pid        logs/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    #解除注释,开启日志功能
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  logs/access.log  main;
    
    sendfile        on;
    #tcp_nopush     on;
    #keepalive_timeout  0;
    keepalive_timeout  65;
    #gzip  on;
    upstream proxy_test.com { 
      server  服务器1的IP:port weight=1; #weight代表的是服务器的权重,越高分配的请求越多
      server  服务器2的IP:port weight=1; 
    }

    server {
        listen       80;
        server_name  proxy_test.com;
        charset utf-8;
        #access_log  logs/host.access.log  main;
        location / {
           proxy_pass         http://proxy_test.com; 
           proxy_set_header   Host             $host; 
           proxy_set_header   X-Real-IP        $remote_addr; 
           proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for; 
        }
        ...
}

修改好后保存退出:wq

然后新建一个日志目录(注意:如果不建日志目录和文件,nginx会无法启动一直报错找不到日志文件

#mkdir logs

#touch error.log access.log

重启nginx加载nginx.conf的配置

#/usr/nginx/sbin/nginx -s reload


五、测试访问

在你的本地电脑上C:\Windows\System32\drivers\etc\hosts文件映射你的nginx服务器IP,如 xxx.xx.x.xxx   proxy_test.com。

然后在两个服务器的tomcat的webapps/ROOT新建一个test.html,写上一段区别服务器的文字,然后访问http://proxy_test.com/test.html。

如果在两个服务器之间不停切换,代表我们的负载均衡配置成功了!


六、最后还有个session共享的问题

要做session共享,就别使用ip_hash,那样集群就没有意义了,最有效的方法是redissessionManager,把session放到redis里就可以共享了。




相关文章

    暂无相关文章
相关栏目:

用户点评