官网:nginx.org
使用源码安装方式 安装目录好控制
进入finalshell 进入 cd /usr/app
使用 wget 下载
wget http://nginx.org/download/nginx-1.20.1.tar.gz
安装依赖
#安装依赖包
yum install gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
解压解包
#解压解包
tar -zvxf nginx-1.20.1.tar.gz
配置文件
#切换路径
cd nginx-1.20.1
#执行配置
#先进入nginx的目录
#执行
./configure --prefix=/usr/app/software/nginx
安装 nginx
#安装nginx
#执行 make
make PREFIX=/usr/app/software/nginx install
启动 nginx
#启动
#进入/usr/app/software/nginx/sbin
./nginx
测试
#测试:
curl http://localhost/
#防火墙放行端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
#重启防火墙
systemctl restart firewalld.service
本地测试
html 目录 下是 web项目空间
重启:./nginx -s reload
反向代理服务器
1)使用 Nginx 可以用于实现反向代理服务器,即 Nginx 实现反向代理功能
2)反向代理?(翻墙 正向代理 代替客户端浏览器)
由一方代替另一方实现功能;其中代替者和被代替者均为服务器;由一方服务器代替另一方服务器对外提供服务;
3)实现反向代理操作
A、搭建 Tomcat 集群(伪集群【一个电脑多个 Tomcat】真集群【一个电脑一个 Tomcat】)
复制多个 tomcat
mkdir tomcats
cp -r tomcat/ tomcats
cd tomcats
mv toncat/ tomcat1
cp -r tomcat1/ tomcat2
cp -r tomcat1/ tomcat3
同时启动 需要先改端口
EditPlus 远程连接 编辑修改
添加 ftp 账号 ip 用户名 密码
高级选项修改端口 22 使用 sftp
修改完成 Tomcat 端口
B、实现反向代理配置
在修改 Nginx 配置
./nginx -s reload
重启 Nginx 浏览页面 进入的 Nginx 服务器 返回的 未知的 Tomcat 集群服务器 中的一个
默认的顺序是配置的顺序: 轮流响应处理
负载均衡
1)什么是负载均衡:
是指集群中处理请求,实现响应工作,应该实现一种均匀分配,即使集群中每个成员都有工作处理
2)如何实现负载均衡
A、采用不同的负载均衡策略实现
B、有哪些策略:Nginx 有默认策略 -- 轮询、最少连接、权重、ip_hash 四种策略
C、轮询策略:简而言之即按照集群配置,轮流实现工作
upstream 名称 {
server 192.168.159.128:8081;
server 192.168.159.128:8082;
server 192.168.159.128:8083;
}
D、权重:比值设置:加入 weight = 值
,默认为1,值越高 处理请求越多 长期来看,一段时间之后权重才可以体现
E、最少连接:当前处理请求最少的成员,把新的请求交给他处理 加入 least_conn;
F、ip_hash:是指当客户端向后台发送请求的时候,客户端的 ip 会送到后台去,后台的 Nginx 会获取到 ip,然后对 ip 进行 hash 值计算,在根据计算得到的 hash 值 找集群中某个成员处理请求和实现响应;此种配置策略有一个特点即:同一个客户的所有请求都是由同一个Tomcat 处理的。Session不同了 不能实现会话跟踪。ip_hash
动静分离:静态资源不需要重复、不经过 Tomcat
1)在项目中有些资源(静态资源 -- js、css、html、图片、音频、视频、动画)是不需要 Tomcat 服务器就可以被直接访问的,那么为了减少 Tomcat 服务器空间的浪费(集群中每个成员都有同一份静态资源 - 浪费空间),那么把每个成员中静态资源从 Tomcat 中分离出去(Tomcat 只剩下动态资源),分离出去的静态资源,当客户请求的时候(客户还能够正常请求),中间者 Nginx 起作用,负责把静态资源给客户响应回去,所以从此点功能上来说,Nginx 也能实现响应(响应的是静态资源),把 Nginx 也能看做是 web 服务器(实现 web 功能)
location ~ \.(html|css|js|gif|jpg|jpeg|png|bmp|swf)$ {
root /usr/app/software/nginx/html;
}
location ~ \.(jsp|do|action)$ {
proxy_pass http://名称;
}