性能测试全栈笔记:49.Nginx-理论/应用部署/配置
性能测试全栈笔记
四十九、Nginx-理论/应用部署/配置
Nginx简介:高性能反向代理服务器,官网数据显示每秒tps在50w左右
- web服务器:转发请求,nginx,apache,类似于服务员
- 应用服务器:tomcat,处理动态的语言,处理逻辑,类似于厨师
- 官网:https://www.nginx.com/
安装步骤:安装Nginx前需要先安装pcre、zlib、OpenSSL等模块,手动安装比较繁琐,使用yum安装比较方便,具体安装步骤如下:
1.默认情况下CentOS7中没有nginx的下载源,先手动添加官方源:[root@nginx ~]# rpm-Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

2.安装Nginx:[root@nginx ~]# yum -y install nginx

查看nginx版本号:
[root@nginx conf.d]# nginx -v
nginx version: nginx/1.20.2

3.配置Nginx:
Nginx默认安装在/etc/nginx目录,nginx.conf为主配置文件
编辑nginx.conf:vi nginx.conf
修改worker_processes后面的数字为当前虚机cpu核数,这里是2,记得后面有分号:worker_processes 2;

思考:命令获取cpu核数:lscpu

4.Nginx中,每个项目都有属于自己的一个配置元件,配置了本项目的访问方式:
1)进入nginx下conf.d目录,包含了一个默认的配置文件模板:default.conf
2)重命名配置文件:mv default.conf pinter.conf
3)编辑pinter.conf配置文件,在server模块前新增:
upstream www.pinter.com{
server 192.168.25.152:8080 weight=10 max_fails=2 fail_timeout=30s;
server 192.168.25.155:8080 weight=10 max_fails=2 fail_timeout=30s;
}
重点:
- 其中,IP地址为pinter所在的虚机地址
- weight:权重,意思是系统nginx给那台tomcat更多的活,一般情况下,新机器可以分配的比例大一些

4)将server_name修改为:www.pinter.com(根据实际情况修改),access.log的注释去掉,后面文件名改为项目名称
server_name www.pinter.com;
access_log /var/log/nginx/pinter.access.log main;

5)将location中的root,index注释掉,新增proxy_pass http://www.pinter.com;
location / {
#root /usr/share/nginx/html;
#index index.html index.htm;
proxy_pass http://www.pinter.com;
}
注意:proxy_pass后的域名必须和upstream名称一致

5.conf.d目录其实可以放多个项目,配置方式同上:

6.启动/重启/停止nginx:
- 启动nginx,任意目录下执行:nginx(没有报错即成功)
- 重启nginx:nginx -s reload
- 停止ngin:nginx -s stop
7.修改host文件,进行域名映射关系操作,window系统host文件路径:C:\Windows\System32\drivers\etc\hosts,Mac系统在:/etc/hosts

新增下面两行:
192.168.25.159 www.pinter.com
192.168.25.159 www.oa.com
注意:请使用管理员模式打开并修改,不然可能会报错。

最后用域名访问pinter和oa项目:
pinter项目:Pinter


如果打开异常,排查:
- 单独从IP地址访问是否正确;
- pinter.conf和oa.conf配置文件是否正确。
如果OA登录不成功:为Nginx的session问题
问题解决:
1.开发改代码架构,每台机器备份session信息
2.改nginx配置文件:
upstream下面添加:ip_hash;
upstream www.oa.com{
ip_hash;
server 192.168.25.153:8081 weight=10 max_fails=2 fail_timeout=30s;
server 192.168.25.158:8081 weight=10 max_fails=2 fail_timeout=30s;
}

至此,Nginx安装,配置,部署过程分享完毕,请按步骤操作。