使用nfs和Nginx实现负载均衡和共享存储
安装软件
Nginx
源码安装:
yum install gcc-* glibc-* openssl openssl-devel pcre pcre-devel zlib zlib-devel -y
ls
tar xvf nginx-1.10.3.tar.gz
cd nginx-1.10.3
ls
./configure
./configure –sbin-path=/usr/local/nginx/nginx –without-http_rewrite_module代表不使用重写功能,即不会引用pcre库,如果安装过程中出现pcre相关问题,可以指定该参数
make
make install
nfs
yum install rpcbind nfs-utils -y
软件配置
Nginx配置
nginx的配置文件在nginx安装目录下:
/usr/local/nginx/conf/nginx.conf
Nginx文件结构
... #全局块
events { #events块
...
}
http #http块
{
... #http全局块
server #server块
{
... #server全局块
location [PATTERN] #location块
{
...
}
location [PATTERN]
{
...
}
}
server
{
...
}
... #http全局块
}
实现服务器代理以及均衡负载:
需要在http块中,server块之上添加upstream块
upstream myWeb {
server 192.168.16.110:8080; #可以为其他电脑上的nginx服务
server 192.168.16.111:8080; #也可以为本机模拟的从机nginx服务
}
然后在location块中修改指向
location / {
proxy_pass http://myWeb;
}
如果需要测试主机中也包含一个从机,则需要复制一份conf配置文件,按普通nginx服务进行设置,但是端口需要与主机端口分开,假如主机配置端口为80,则从机配置端口可以为8080.
开启nginx服务
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf #主机
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx1.conf #从机
nfs配置
NFS服务的配置文件为 /etc/exports,这个文件是NFS的主要配置文件,不过系统并没有默认值,所以这个文件不一定会存在,可能要使用vim手动建立,然后在文件里面写入配置内容。
/etc/exports文件内容格式:
<输出目录> [客户端1 选项(访问权限,用户映射,其他)] [客户端2 选项(访问权限,用户映射,其他)]
这里我设置的为:
/share 192.168.16.0/24(rw,sync,fsid=0)
将/share目录共享到192.168.16.0该局域网中
然后启动nfs服务
service nfs start #启动服务
showmount -e #默认查看自己共享的服务,前提是要DNS能解析自己,不然容易报错
showmount -a #显示已经与客户端连接上的目录信息
客户端使用showmount命令查询NFS的共享状态
showmount -e NFS服务器IP
客户端挂载NFS服务器中的共享目录
mount NFS服务器IP:共享目录 本地挂载点目录
最后需要修改NFS服务器共享目录的权限
chmod 777 -R /share
设置共享nfs存储
nfs配置好以后,就可以在从机的nginx配置文件中进行修改,将location块修改为
location / {
root /share; #共享目录挂载点
index index.html; #共享目录中文件
}
进行nginx服务的重启
/usr/local/nginx/sbin/nginx -s reload