测试环境一般有1台app服务器,直接安装部署应用即可。
但是生产上存在多台app应用服务器,这个时候就需要一台web(nginx)服务器用来随机访问多台nginx服务器,还有负载均衡的效果。
服务器列表:
生产上有3台app应用服务器(这三台统一安装用于的jar包或者war包,假如部署应用的端口号是8080,上下文根是tcrl):
182.119.106.1
182.119.106.2
182.119.106.3
1台web(安装nginx)服务器:
182.119.3.51
这个时候需要在web服务器上安装nginx即可。
首先要拥有nginx服务器的root用户,
登录182.119.1.1web服务器的root用户:
groupadd nginx >创建nginx组
useradd -g nginx nginx > 创建nginx用户指定nginx用户组
cd /usr
mkdir nginx
chown -R nginx:nginx /usr/nginx > 修改文件所属用户和组chown
/usr/nginx此目录是nginx的安装目录,主要是给nginx用户赋此目录权限,这样nginx就可以安装到此目录下。
重置nginx用户密码
[root@eshop-cache01 ~]# passwd nginx
Changing password for user nginx.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@eshop-cache01 ~]#
接下来就可以切换用户安装啦。
su nginx >切换用户,也可以直接根据重置的nginx用户和密码登录
下载nginx、zlib、pcre,如果服务器有网就直接下载,如果没网就自己下载好资源上传至服务器。
wget http://zlib.net/zlib-1.2.11.tar.gz
wget http://ftp.pcre.org/pub/pcre/pcre-8.44.tar.gz
wget http://nginx.org/download/nginx-1.19.0.tar.gz
我的直接下载(上传目录)是/home/nginx
[nginx@eshop-cache01 ~]$ wget http://zlib.net/zlib-1.2.11.tar.gz
--2021-06-15 13:51:46-- http://zlib.net/zlib-1.2.11.tar.gz
Resolving zlib.net (zlib.net)... 85.187.148.2
Connecting to zlib.net (zlib.net)|85.187.148.2|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 607698 (593K) [application/x-gzip]
Saving to: 鈥榸lib-1.2.11.tar.gz鈥
100%[==================================================================================================================================================================================================>] 607,698 16.4KB/s in 23s
2021-06-15 13:52:14 (26.3 KB/s) - 鈥榸lib-1.2.11.tar.gz鈥saved [607698/607698]
[nginx@eshop-cache01 ~]$ wget http://ftp.pcre.org/pub/pcre/pcre-8.44.tar.gz
--2021-06-15 13:54:49-- http://ftp.pcre.org/pub/pcre/pcre-8.44.tar.gz
Resolving ftp.pcre.org (ftp.pcre.org)... 131.111.8.88
Connecting to ftp.pcre.org (ftp.pcre.org)|131.111.8.88|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2090750 (2.0M) [application/x-gunzip]
Saving to: 鈥榩cre-8.44.tar.gz鈥
100%[==================================================================================================================================================================================================>] 2,090,750 880KB/s in 2.3s
2021-06-15 13:54:52 (880 KB/s) - 鈥榩cre-8.44.tar.gz鈥saved [2090750/2090750]
[nginx@eshop-cache01 ~]$ wget http://nginx.org/download/nginx-1.19.0.tar.gz
--2021-06-15 13:55:00-- http://nginx.org/download/nginx-1.19.0.tar.gz
Resolving nginx.org (nginx.org)... 3.125.197.172, 52.58.199.22, 2a05:d014:edb:5704::6, ...
Connecting to nginx.org (nginx.org)|3.125.197.172|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1043748 (1019K) [application/octet-stream]
Saving to: 鈥榥ginx-1.19.0.tar.gz鈥
100%[==================================================================================================================================================================================================>] 1,043,748 570KB/s in 1.8s
2021-06-15 13:55:02 (570 KB/s) - 鈥榥ginx-1.19.0.tar.gz鈥saved [1043748/1043748]
然后就开始解压:
tar -zxvf nginx-1.19.0.tar.gz
tar -zxvf pcre-8.44.tar.gz
tar -zxvf zlib-1.2.11.tar.gz
开始安装:
安装顺序是:pcre,zlib,nginx
cd pcre-8.44
./configure > 发现报错:configure: error: Invalid C++ compiler or C++ compiler flags
因此需要安装c++
yum install gcc-c++
然后又报错:You need to be root to perform this command.
意思就是用root用户安装c++呗,用root用户执行yum install gcc-c++成功后继续用nginx用户安装
cd /home/nginx/pcre-8.44
./configure >这次成功啦
make && make install > 又报错啦 cannot create regular file '/usr/local/lib/libpcre.so.1.2.12': Permission denied
说明nginx用户没有/usr/local目录权限,所以用root用户执行chown -R nginx:nginx /usr/local
执行成功之后继续用nginx用户安装
make && make install
cd zlib-1.2.11
./configure
make && make install
cd nginx-1.19.0
./configure --prefix=/usr/nginx
make && make install
除了pcre安装的时候有点小波折,后面很顺利。
nginx安装成功之后就开始备份和编写nginx.conf配置文件啦。
#备份
cd /usr/nginx/conf
cp nginx.conf nginx.conf_bak
安装后的nginx.conf就不说明啦,直接说怎么改:
upstream tcrlServer { > 此处是新增配置,用来填写文章开头说的多台app应用服务器。
>tcrlServer是自己命名的,可以新增多个不同命名的配置
ip_hash; >代表负载均衡
server 182.119.106.1:8080;
server 182.119.106.1:8080;
server 182.119.106.1:8080;
}
server {
listen 8080; >nginx服务器访问地址
server_name 192.168.3.51; >nginx服务器端口
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
location /tcrl { >此处是新增配置,拦截上下文根为tcrl的请求
root tcrlServer;>此处配置有点忘记了,回头我再修改
}
剩下的就是启动啦
/usr/nginx/sbin
./ngix -t /usr/nginx/conf/nginx.conf 检测配置文件
./ngix -c /usr/nginx/conf/nginx.conf >启动nginx
启动不报错之后ps -ef|grep nginx会发起多两个进程,一个是master,一个是waker
然后就可以访问:
http://192.168.3.51:8080啦
出现welCome就算成功啦。
访问http://192.168.3.51:8080/tcrl/*******路径的请求会自动随机转到下面三台服务器上:
http://182.119.106.1:8080/tcrl/*******
http://182.119.106.2:8080/tcrl/*******
http://182.119.106.3:8080/tcrl/*******