Nginx的安装和配置
进入Nginx官网站 http://nginx.org/,点击右侧download
如下是nginx版本这里下载稳定版本 1.14.1 版本 复制链接,然后用 wget 下载
输入命令 wget http://nginx.org/download/nginx-1.14.0.tar.gz (这里我下载的是1.14.0版本)
下载后 解压 tar -zxvf nginx-1.14.0.tar.gz
我这里在根目录下新建了一个worksoft文件夹 进行下载 解压操作
安装Nginx前,需要安装以下三个依赖包:
ssl 功能需要 openssl 库https://www.openssl.org/source/
wget https://www.openssl.org/source/openssl-fips-2.0.14.tar.gz
gzip 模块需要 zlib 库 http://www.zlib.net/
wget http://www.zlib.net/zlib-1.2.11.tar.gz
rewrite 模块需要 pcre 库 http://www.pcre.org/
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gz
下载完成后安装,依赖包安装顺序依次为: openssl、zlib、pcre, 然后安装 Nginx 包
1.安装openssl
tar -zxvf openssl-fips-2.0.14.tar.gz
cd openssl-fips-2.0.14/
./config
make
make install
2.安装zlib
tar -zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11/
./configure
make
make install
安装gcc g++
yum install gcc-c++
3.安装pcre
tar -zxvf pcre-8.39.tar.gz
cd pcre-8.39/
./configure
make
make install
4.安装nginx
tar -zxvf nginx-1.12.0.tar.gz
cd nginx-1.12.0/
./configure --with-pcre=../pcre-8.39 --with-zlib=../zlib-1.2.11 --with-openssl=../openssl-fips-2.0.14
make
make install
检测是否安装成功
cd /usr/local/nginx/sbin/
./nginx -t
出现如下提示 则说明安装成功
启动nginx命令 ./nginx
查看服务 ps -ef|grep nginx
看到如下进程说明启动成功
nginx.conf默认端口号 80 所以访问 ip 192.168.12.137 (master) 看到如下页面
负载均衡配置
首先准备三台服务器
ip地址分别为 :
192.168.12.134 (1号机)
192.168.12.135 (2号机)
192.168.12.136 (3号机)
安装tomcat,以及部署web项目,开放8080端口,开启服务器。
centos7开放8080端口 firewall-cmd --zone=public --add-port=8080/tcp --permanent
不同的服务器中放不同的页面,其中hello.jsp中 分别显示 1号机 2号机 3号机
开启tomcat服务器 ./startup.sh
分别访问三台主机得到如下
配置Nginx
进入Nginx目录,编辑 nginx.conf 配置文件
vim /usr/local/nginx/conf/nginx.conf
server {
#默认侦听80端口,可以修改为8888
#listen 80;
listen 8888;
server_name localhost;
在http节点下添加upstream节点
nginx对于集群默认的负载形式是使用upstream方式进行负载(默认是轮询upstream的形式),每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除,这种默认方式的可靠性比较低、负载分配不均衡;一般在纯静态页面服务器集群才会使用这种方式,
upstream testnginx.com{ #名字随便起与下面proxy_pass对应即可
server 192.168.12.134:8080;
server 192.168.12.135:8080;
server 192.168.12.136:8080;
对于负载均衡,nginx还提供了以下均衡模式:
1)weight 模式
权重模式,指定upstream的轮询记录,weight和访问比例成正比,主要与后端服务器性能不均的情况;
upstream testnginx.com {
server 192.168.12.134:8080 weight=40;
server 192.168.12.135:8080 weight=60;
}
以上配置 192.168.12.135 比 192.168.12.134 有更高的访问比例;
2)ip_hash 模式
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session独立匹配的问题;
upstream testnginx.com{
server 192.168.12.134;
server 192.168.12.134;
ip_hash;
}
3)fair 模式
按后端服务器的响应时间来分配请求,响应时间短的优先分配;
upstream testnginx.com {
server 192.168.12.134:8080;
server 192.168.12.135:8080;
fair;
}
4)url_hash 模式
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效;
upstreamt estnginx.com{
server 192.168.12.134:8080;
server 192.168.12.135:8080;
hash $request_uri;
hash_method crs32;
}
upstream还可以为每个设备设置状态值,部分常用的状态如下:
down:当前的server暂时不参与负载.
max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误;
fail_timeout : max_fails次失败后,暂停的时间;
backup: 指定为备用服务器,其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻;
在server中 location里 添加一个 proxy_pass http://testnginx.com;
接着保存退出。
重启nginx服务器
方式一:
查看进程号 ps -ef|grep nginx
杀死对应进程 kill -quit1522
再重启 按指定config配置启动 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
或者直接启动也会按默认的配置启动 /usr/local/nginx/sbin/nginx
方式二:
进入nginx可执行目录sbin下,输入命令 ./nginx -s reload 即可
负载均衡测试:
经过以上配置已经实现负载均衡,可以通过 访问nginx服务器地址来实现对不同服务器tomcat访问
进行测试
多次访问 http://192.168.12.137:8888/linuxServerTest/hello.jsp