暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Nginx+tomcat集群环境安装文档V1.0

IT那活儿 2023-04-04
273

点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!




系统安装部署及配置



1. 运行环境说明

1)戴尔R720硬件配置

  • CPU: 处理器名称 HexaCore Intel Xeon E5-2620 v2, 2.1Ghz (12 x 100)两颗CPU
  • 内存:12*16GB,DIMM DDR4
  • 存储设备:8*600GB 15K ,RAID 10,DELL PERC H710P SCSI Disk Device (1675 GB)已做RAID10磁盘阵列
  • 网卡:Intel(R) Gigabit 4P I350-t rNDC

2)运行软件环境要求

  • 操作系统:Centos Linux 6.5 64bit
  • 部署容器:nginx-1.9.6.tar.gz
  • Perl库:pcre-8.34.tar.gz
  • 套接字层密码库:openssl-1.0.1h.tar.gz
  • 编译器:gcc、gcc-c++
  • Tomcat:apache-tomcat-7.0.73.tar.gz
  • JDK:jdk-6u45-linux-x64.bin

2. 系统、Nginx安装调优

2.1 防火墙设置

防火墙的默认的状态是开启的,使用service iptables status查看防火墙过滤情况,对于用户侧,需要可以访问到我们Nginx的监听端口,所以需要将Nginx的监听端口授予TCP协议的input权限,有时需要用SSH等远程连接工具远程操作此服务器,所以保留默认的配置项的对22端口的过滤。
测试环境的Nginx的监听端口设置为8088,和8089设置多个监听就在防火墙配置文件添加多个监听端口的ACCEPT,具体操作,vi etc/sysconfig/iptables修改iptables文件,输入-A INPUT -p tcp --dport 8088 -j ACCEPT-A INPUT -p tcp --dport 8089 -j ACCEPT(未添加到此列表的端口将拒绝input,需要哪个端口过滤就直接在iptables列表添加即可,对外访问端口没有做限制),保存后使用service iptables restart重启防火墙列表即可生效,然后使用 service iptables status查询已生效的防火墙策略,如图所示:

2.2 openssl安装、配置

为后续https加密协议做准备先将套接字层密码库安装。

1)安装介质准备

  • 需要使用的安装包:openssl-1.0.1h.tar.gz。
  • 通过SSH将文件上传到/usr/local目录。

2)安装过程

依次执行如下命令配置、编译和安装openssl。
#cd /usr/local
#tar xzvf openssl-1.0.1h.tar.gz
#cd openssl-1.0.1h
#./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl-1.0.1h
#make
#make install

参数解释:

  • --prefix=/usr/local/openssl     指定openssl的安装目录。
  • --openssldir=/usr/local/openssl-1.0.1h    //指的是tar解压后openssl的源码路径。
检查安装是否成功,使用命令openssl version 查看openssl是否为最新的版本。

注意:如果查询到的版本号不是openSSL 1.0.1h,那是因为旧版本的openssl路径加载到了系统路径下了,解决的方案如下

  • #which openssl        //查看系统openssl的路径,并且记录下来,下面会用到。
  • #rm -rf /usr/bin/openssl  // usr/bin/openssl代表which openssl 查看到的旧版本的openssl的路径。
  • #cp /usr/local/openssl/bin/openssl /usr/bin/openssl  //拷贝新版本的安装路径到系统路径。
  • 执行完后输入openssl version   如图所示表示成功读取密码库:

2.3 pcre安装、配置

1)安装介质准备

需要使用的安装包:pcre-8.34.tar.gz,通过SSH将文件上传到/usr/local目录。

2)安装过程

依次执行以下命令安装pcre:
#cd /usr/local
#tar xzvf pcre-8.34.tar.gz
#cd pcre-8.34
#./configure --prefix=/usr/local/pcre
#make
#make install

参数解释:

  • --prefix=/usr/local/pcre               //指定pcre的安装目录

2.4 安装、配置nginx

1)安装前准备

在安装nginx前必须要确保下列的软件已经完成安装,pcre-8.34、openssl-1.0.1h。

  • yum -y install gcc gcc-c++
  • yum -y install gcc gcc-c++ pcre-devel pcre openssl opensll-devel

2)安装介质

nginx-1.9.6.tar.gz,通过SSH将文件上传到/usr/local目录

3)安装过程

#cd /usr/local
#tar xzvf nginx-1.9.6.tar.gz
#cd nginx-1.9.6
#./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-openssl=/usr/local/openssl-1.0.1h --with-pcre=/usr/local/pcre-8.34 --with-http_realip_module
 --with-stream
 --with-stream

#make
#make install

参数介绍:

  • --prefix=/usr/local/nginx 指定nginx的安装目录。
  • --with-http_stub_status_module 使ngx_stub_status_modul  模块可用。
  • --with-http_ssl_module   使用https协议模块。
  • --with-openssl=/usr/local/openssl-1.0.1h 读取openssl库的源码路径。
  • --with-pcre=/usr/local/pcre-8.34   读取pcre库的源码路径。

4)配置、调优Nginx

执行编辑命令,vi /usr/local/nginx/conf/nginx.conf
找到对应的参数进行修改,默认参数中没有的话需要手动添加进去,没有提及到的可保留默认设置,具体的配置如下所示:
全局项:
worker_processes 6;
worker_cpu_affinity 000001 000010 000100 001000 010000 100000;
worker_rlimit_nofile 65535;
events {
  use epoll;
  multi_accept on;
 worker_connections 65535;
 }

http体:
access_log off;
    server_names_hash_max_size 2048;
    server_names_hash_bucket_size 2048;
    sendfile off;
    tcp_nopush on;
    tcp_nodelay on;
    send_timeout 60;
    reset_timedout_connection on;
    keepalive_timeout 1800;
    fastcgi_connect_timeout 600;
    fastcgi_send_timeout 600;
    fastcgi_read_timeout 600;
    fastcgi_buffer_size 1024k;
    fastcgi_buffers 4 1024k;
    fastcgi_busy_buffers_size 2048k;
    fastcgi_temp_file_write_size 2048k;
#gzip on;
    upstream site {
               server 192.169.2.5:8081;
               server 192.169.2.6:8081;
               ip_hash;
               keepalive 300;
                 }

#找到server,由于需两个监听,故还需新增一个对应的server体:
server {
      listen 8081;
      server_name  localhost;
       location / {
          proxy_pass http://site;
          proxy_set_header Connection "keep-alive";
          proxy_http_version 1.1;
          proxy_headers_hash_max_size 51200;
          proxy_headers_hash_bucket_size 6400;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_set_header Host $host;
          client_max_body_size 10m;
          client_body_buffer_size 10240k;
          proxy_connect_timeout 120;
          proxy_send_timeout 180;
          proxy_read_timeout 180;
          proxy_buffer_size 1024k;
          proxy_buffers 4 1024k;
          proxy_busy_buffers_size 2048k;
        }
}

备注:upstream site的负载均衡的反向代理的服务器IP和WBS的监听端口要根据实际情况设置,把所有的集群WBS的服务器IP和WBS监听端口都罗列上去,以上输入的IP和端口为举例说明,其中子节点端口与代码端口须要一致。
其中ip_hash; 不要漏掉了,因为这个管理session的会话的。

参数介绍:

  • worker_processes 6 即为nginx启动时的nginx进程数,建议设置为服务器的cpu cores数。可以使用cat /proc/cpuinfo查看cpu cores是多少就代表CPU有多少核。
  • worker_cpu_affinity参数为每个cpu分配进程的nginx进程的处理,使用二进制表示,其中000001 000010 000100 001000 010000 100000分别表示第一、第二、第三、第四、第五、第六核cpu(设置的cpu的核数不能超过worker_processes 的数量)。
  • worker_rlimit_nofile 65535 表示一个nginx进程打开的最多文件描述符数目,建议与ulimit -n的值保持一致。
  • use epoll使用高性能网络I/O模型。
  • multi_accept on让一个worker进程最大限度的接收连接。
  • worker_connections 65535表示单个进程最大连接数,设置为上线的最大连接数65535,建议与ulimit –n的查询结果保持一致。
  • tcp_nopush on告诉 Nginx 在一个数据包里发送所有头文件,而不一个接一个的发送可以防止网络阻塞 
  • tcp_nodelay on告诉 Nginx 不要缓存数据,而是一段一段的发送--当需要及时发送数据时,就可以设置这个属性。
  • keepalive_timeout 1800 前端长连接接入Nginx时,连接的超时时间,单位是秒。
  • upstream表示为负载均衡,upstream内均为集群服务端。
  • listen 8088即为Nginx监听的端口为8088。
  • location / 表示对对 "/" 启用反向代理。
  • proxy_pass 反向代理的目的地址。
保存后使用 /usr/local/nginx/sbin/nginx -t 检测配置是否全部正确,查看到如下信息,表明配置项成功(反之则表示配置文件配置有误),则可以使用 /usr/local/nginx/sbin/nginx 命令启动nginx服务。

3. Nginx的常用命令

3.1 启动Nginx服务
根据Nginx的安装路径,使用命令/usr/local/nginx/sbin/nginx 启动Nginx服务。
Nginx服务启动后,需要查询nginx的进程状态,使用如下命令:
ps -ef|grep nginx
查询结果中找到master进程即为nginx的主进程,如图所示:
3.2 停止nginx服务
停止nginx服务的方式有以下几种:
1)从容停止nginx
使用命令kill -QUIT 主进程号。
步骤:先使用ps -ef|grep nginx命令查看nginx的主进程号,然后记下,如上图我服务器的nginx的启动进程号是24383,然后使用kill -QUIT 24383 从容停止nginx服务。
2)快速停止nginx
使用命令kill -TERM 主进程号。
步骤:先使用ps -ef|grep nginx命令查看nginx的主进程号,然后记下,如上图我服务器的nginx的启动进程号是24383,然后使用kill -TERM 24383 快速停止nginx服务。
3)强制停止nginx
使用命令pkill -9 nginx。
4)修改完配置文件平滑重启Nginx
使用命令:

/usr/local/nginx/sbin/nginx -s reload




安装JDK



下载JDK(jdk-6u45-linux-x64.bin),或者通过其他途径获得:

(http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html#jdk-6u45-oth-JPR)
  • 使用命令./jdk-6u45-linux-x64.bin 运行,如果 提示 permission denied 那么表示缺少权限。
  • 使用命令chmod  777 文件名  赋给权限。
  • 再次执行./jdk-6u45-linux-x64.bin 运行。
  • 使用vi /etc/profile 命令配置JDK的环境:
配置环境如图:
使用命令  java -version
显示结果:
java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)

这表示java命令已经可以运行了。




Tomcat的安装



1. 下载Tomcat

使用的最新的Tomcat。
2. 解压安装
打开压缩文件,解压到对应目录。
使用cd命令找到Tomcat 目录运行startup.sh 启动:
3. 删除Tomcat下的文件说明
请特别注意:删除文件夹或者文件前,要备份。tomcat总共有3个文件夹和1个文件可以删除:
  • 3个文件夹
    manager
    docs
    ROOT
  • 1个文件
    manager.xml
路径:
  • 1.Tomcat\webapps\manager
  • 2.Tomcat\webapps\docs
  • 3.Tomcat\webapps\ROOT
  • 4.Tomcat\conf\Catalina\localhost\manager.xml

END


本文作者:李柯林(上海新炬中北团队)

本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论