一、Nginx的理解
Nginx是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务。Nginx是一款轻量级的web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like协议下发行。特点:占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现最好。
二、nginx的配置
实验步骤:由于之前在源码包的编译过程使用了nginx,在此就不再叙述了,我们对nginx的配置进行如下修改。
1) 检测是否安装成功
---> /usr/local/nginx/sbin/nginx # 开启ngnix服务
注意:当服务启动出现错误:error while loading shared libraries:libpcre.so.1:cannot open shared object file:No such file or directory
解决方法: 1、使用命令where libpcre.so.1找到它所在的位置
2、ln -s /usr/local/lib/libpcre.so.1 /lib64命令做个软连接
3、再重新启动即可(ps -aux| grep nginx来查看nginx服务进程)
---> ln -s /usr/local/nginx/sbin/nginx /sbin/ # 进行nginx的链接操作
2)去掉nginx服务的版本号
---> vim /root/nginx-1.15.3/src/core/nginx.h # 只修改一行
# 此时,在真机中使用 curl -I 172.25.2.1 查看,则不会显示nginx的版本号。
3)注释/root/nginx-1.15.3/auto/cc/gcc中debug的下一行
4)在浏览器中输入server1的ip,可以访问nginx的默认文件
5)添加发布文件
---> vim /usr/local/nginx/html/index1.html
<h1>server1 --- nginx</h1>
# 在浏览器中的结果:
6)nginx的基本操作
---> /usr/local/nginx/sbin/nginx # 启动服务
---> /usr/local/nginx/sbin/nginx -s stop(reload、quit) #停停止、重启服务
---> /usr/local/nginx/sbin/nginx -h|-t # h命令帮助;t验证配置文件
三、Nginx实现负载均衡
1)修改主配置文件
---> vim /usr/local/nginx/conf/nginx.conf
worker_processes 1;
events {
worker_connections 65535;
}
http {
upstream xniu{
# ip_hash # 负载均衡算法,不写默认为rr(轮询)
server 172.25.2.2:80; # 后端服务器
server 172.25.2.3:80;
server 127.0.0.1:80 backup; # 当后端服务器均有问题时,使用本地的服务
}
include mime.types;
default_type application/octet-stream;
server {
listen 80; # nginx监听80端口
server_name www.xniu.com; # 访问域名
location / {
proxy_pass http://xniu; # 访问上边的虚拟主机
}
}
}
2)查看系统支持的最大文件数
---> sysctl -a | grep file
---> vim /etc/security/limits.conf
Nginx - nofile 65535 # 使nginx工作再nginx用户的工作空间
3)创建nginx用户
---> useradd -M -d /usr/local/ngnix ngnix #指定用户加目录
4)重新加载nginx:(加载之后需要打开server2和server3的httpd服务)
---> nginx -s reload
5)在真机中测试负载均衡(当server2坏掉,则只有server3工作)
注意:也可以给后端服务器设置权重;编辑nginx.conf文件;在虚拟主机172.25.2.2后添加weight=2.则在真机中会出现两次server2,一此server3。结果如下:
四、使用ricci和luci实现nginx的高可用
1)在server1中下载并配置管理工具ricci(集群管理)和luci(图形界面),并设置密码和服务的启动和开机自启动。由于时昨天的内容,在这就不多加阐述了。最中的结果时,可以在浏览器中打开:https://server1:8084
2)配置nginx的高可用
1.首先在集群管理界面添加节点server1和server4(添加之后需几分钟,等待包的安装)
2.建立错误恢复域,当一个服务有问题时可以切换到另一服务上。(设置server1的优先级高)
3.添加要用到的资源nginx和vip、服务启动脚本
# 添加虚拟ip,子网掩码,切换主机的时间为5
# 添加脚本nginx(由于我们在/etc/init.d/下没有nginx,我们可以仿照httpd写)
4.在集群中添加资源组(vip nginx)
5.在server1和server4中配置nginx服务,测试结果如下:
可以在浏览器中输入172.25.2.100会显示如下界面:
在节点server1出问题之后,节点server4还可以继续工作,实现了nginx的高可用。