目录
理论:
1.HAProxy
2.Nginx
3.nfs
实验环境
主机关闭防火墙和修改selinux
Haproxy部署
1.安装haproxy
2.修改配置文件vi /etc/haproxy/haproxy.cfg
3.配置rsyslog
4.启动服务
安装两台Nginx
1.安装依赖包
2. 下载Nginx-1.8.1.tar.gz
3.编译Nginx
4.安装及常用命令
nfs部署
1.安装rpc-bind nfs-utils
2.创建共享的文件夹
3.修改NFS服务的主配置文件
4.启动服务
5.使用 showmount 命令来查看服务端是否可连接:
6.挂载
7.Nginx配置
1.HAProxy
HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。
HAProxy实现了一种事件驱动, 单一进程模型,此模型支持非常大的并发连接数。多进程或多线程模型受内存限制 、系统调度器限制以及无处不在的锁限制,很少能处理数千并发连接。事件驱动模型因为在有更好的资源和时间管理的用户空间(User-Space) 实现所有这些任务,所以没有这些问题。此模型的弊端是,在多核系统上,这些程序通常扩展性较差。这就是为什么他们必须进行优化以 使每个CPU时间片(Cycle)做更多的工作。
2.Nginx
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等,并且cpu、内存等资源消耗却非常低,运行非常稳定。
3.nfs
NFS (Network File System)即网络文件系统,NFS允许一个系统在网络上与他人共享目录和文件。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件。
NFS至少有两个主要部分:一台服务器和一台(或者更多)客户机。当用户希望使用远程文件时,只要用“mount”命令就可以把远程文件系统挂在自己的文件系统之下,使远程的文件像本地计算机上的文件—样可以被访问。
ip | 主机 | 需要的安装包 |
---|---|---|
192.168.100.181 | haproxy | haproxy |
192.168.100.182 | Nginx | nginx-1.8.1.tar.gz |
192.168.100.183 | Nginx | nginx-1.8.1.tar.gz |
192.168.100.184 | nfs | rpc-bind nfs-utils |
systemctl stop firewalld
setenforce 0
yum install haproxy -y
#设定转发的后台服务器地址并开启对后台服务器的健康检查
backend app
balance roundrobin
server app1 192.168.100.182:80 check #nginx ip
server app1 192.168.100.183:80 check #nginx ip
#前端设置
frontend main
#绑定80端口进行负载均衡 访问就不需要加端口号
bind *:80
#设定监控平台
listen admin_stats
stats enable
#绑定监控端口号
bind *:8080
mode http
option httplog
log global
maxconn 10
stats refresh 30s
stats uri /admin
stats realm haproxy
#设定访问权限,用户名和密码
stats auth admin:admin
stats hide-version
stats admin if TRUE
[root@haproxy ~]# vi /etc/rsyslog.conf
#配置使用udp协议
module(load="imudp")
input(type="imudp" port="514")
#设定haproxy日志
local2.* /var/log/haproxy.log
#重启服务
[root@proxyserver ~]# systemctl restart rsyslog
[root@haproxy ~]# systemctl start haproxy
#查看启动情况
[root@haproxy ~]# netstat -tnlp |grep haproxy
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 3257/haproxy
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 3257/haproxy
使用192.168.100.181:8080/admin 登录监控页面
账户和密码都是admin
安装好Nginx后用192.168.100.181 访问的则是两台Nginx的页面
yum -y install gcc gcc-c++ autoconf automake libtool make openssl openssl-devel pcre pcre-devel
cd /usr/local/src/ #切换安装路径
wget http://nginx.org/download/nginx-1.8.1.tar.gz #下载nginx,如果提示没有wget请自行安装 yum -y install wget
tar -zxvf nginx-1.8.1.tar.gz #解压安装包
cd nginx-1.8.1 打开解压出来的目录
./configure \
--prefix=/usr/local/nginx \--with-http_ssl_module \
--with-http_flv_module \
--with-http_stub_status_module \
-- with-http_gzip_static_module \
--with-pcre 编译命令
make && make install #安装
/usr/local/nginx/sbin/nginx #启动
/usr/local/nginx/sbin/nginx -s reload #重新载入配置文件
/usr/local/nginx/sbin/nginx -s reopen #重启
yum install -y rpc-bind nfs-utils
mkdir /xxx
chmod -R 777 /xxx #提权成777
touch /xxx/index.html
vim /xxx/index.html
web777
vim /etc/exports
#添加如下规则
/xxx *(rw,sync)
systemctl start rpcbind
systemctl start nfs
修改好文件后执行以下命令使配置立即生效:
exportfs -r
[root@localhost xxx]# showmount -e localhost
Export list for localhost:
/xxx *
mount localhost:/xxx /mnt
在两台Nginx服务器敲
mount -v -t nfs 192.168.100.184:/xxx /usr/local/nginx/html/ #ip是nfs的ip 将服务端的共享目录挂载到本机的 /usr/local/nginx/html/目录上
Nginx配置完毕访问/usr/local/nginx/html/目录就相当于访问nfs的/xxx/index.html
无论怎么刷新访问的都是/xxx下的index.html