目录
(2) 把我们下载好的nginx安装包上传到linux中并解压
(1) 需要再每个nginx所在的主机上安装keepalived
一.nginx的安装配置及如何启动
代理服务器--使用比较多的为nginx代理服务器。
1.什么是nginx
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。开源软件,服务器软件.能够支持高达 50,000 个并发连接数的响应
现在由哪些企业正在使用nginx?
1. 京东 2.淘宝 3.腾讯 4. 新浪 5.网易等
2.如何使用nginx
(1) 安装nginx软件所需的依赖插件
yum install -y gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
(2) 把我们下载好的nginx安装包上传到linux中并解压
(3) 创建一个目录作为nginx的安装目录
mkdir /usr/nginx
(4) 进入nginx的解压目录
(5) 设置nginx的安装路径为上面/usr/nginx
./configure --prefix=/usr/nginx ---------设置安装路径
(6) 编译--安装
make -------编译
make install -------安装
使用ls /usr/nginx 查看安装好的目录
conf: 配置目录
html: 放置静态资源的。
logs: 日志
sbin: 启动和关闭nginx的脚本
(7) 启动nginx
进入/usr/nginx/sbin
./nginx 开启nginx
./nginx -s stop 关闭nginx
./nginx -s reload 重新加载配置文件---修改完配置文件后使用该命令
(8) 访问nginx服务器
关闭防火墙或放行80端口号:
设置防火墙允许放行哪些端口号:
firewall-cmd --add-port=8080/tcp --zone=public --permanent重启防火墙:
systemctl restart firewalld关闭防火墙----慎重【关闭】 开启还会启动:
systemctl stop firewalld
3.nginx的配置文件
进入/usr/nginx/conf,打开该目录下的nginx.conf文件:
cd /usr/nginx/conf -------进入nginx.conf文件所在目录
使用vi打开该文件进行配置或使用Xftp调用本地软件打开:
vi nginx.conf --------使用vi打开nginx的配置文件
设置81端口并指定跳转页面
端口号默认为80,这里我们进入自己设置的81端口下的指定内容
二.nginx的三大核心
反向代理:
负载均衡:
动静分离
1. 反向代理
如何使用nginx完成反向代理
(1)部署准备
准备一个真实项目和Tomcat服务器 并把项目部署到Tomcat.---springboot项目,在根目录创建一个project文件夹,存储项目jar包,
(2)启动项目
进入创建好的project目录下,启动项目
java -jar xxxx.jar
(3) 修改nginx配置文件
重新加载nginx
./nginx -s reload ----------配置完毕记得重新加载nginx配置文件
ps:如果所有都配置完成无法进入指定页面,则需放行项目端口,我这里项目端口号是8081,然后重新加载防火墙;或者直接关闭防火墙,但关闭请慎重
(4)项目启动但无法连接数据库
1.未安装mysql,安装教程可参考该链接:http://t.csdn.cn/MM7Fc
2.mysql未配置远程连接服务或mysql端口号未放行,操作教程可直接参考上面的链接
3.我们需要将windows下的数据库放入Linux连接的数据库,才能实现增删改查操作,但在数据库复制过程中可能因为mysql版本不同造成数据编码异常,若出现则可参考以下链接:http://t.csdn.cn/4qx6c
2. 负载均衡
用于搭建项目集群,在实际开发中我们会有多个服务器,这时我们要把项目部署在每一个服务器上,负载均衡减轻单台服务器压力,保证每台服务器的高效率及高可用
(1)开启两台服务器
这里我们是开启了两个窗口,模拟多个服务器场景
(2) 修改nginx配置文件
(3) 测试
实际开发过程中,每台服务器上的项目都是相同的,客户在操作过程中,可以根据配置随机访问某台服务器,但效果是相同的,他们操作的都是同一个数据库
1)、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
2)、weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
2)、ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
3)、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
4)、url_hash(第三方)
增加权重,8081端口使用两次8082端口才会再次使用,适用于服务器之间效率不同,内存大小不同的场景,给效率更高的服务器增加权重
按访问ip的hash结果分配
3.nginx---动静分离
静态资源的统一管理。
解决方法:
将静态资源直接放置在Linux的指定目录下,并配置nginx.conf文件,指定静态资源调用路径
修改nginx.conf配置文件
location ~ \后面跟的是正则表达式,可根据自己的需要进行修改
4.nginx---高可用
准备条件:
192.168.223.155 [master]
192.168.223.156 [backup]
(1) 需要再每个nginx所在的主机上安装keepalived
yum install -y keepalived 安装keepalived
rpm -q -a keepalived 检查是否安装keepalived
安装好后的keepalived默认在/etcc/keepalived目录
(2) 配置keepalived文件及相关脚本
配置相关脚本
若要使用killall则使用以下命令安装:
yum install psmisc
(3) 测试
配置完毕后开启多台服务器的nginx
进入/usr/nginx/sbin目录下
./nginx 开启nginx
./nginx -s stop 关闭nginx
./nginx -s reload 重新加载配置文件---修改完配置文件后使用该命令
启动keepalived
systemctl start keepalived
测试:这里的地址为虚拟ip的地址。
可以主动关闭主nginx,测试 从nginx是否直接替代
nginx -s stop
systemctl stop keepalived