配置Mogilefs中使用Nginx做反代查询:
Nginx做MogileFS的前端程序,我们需要重新编译nginx,下载nginx-mogilefs-module模块即可。
1,介绍
在没有做nginx mogilefs之前的URL:
http://192.168.125.200:7500/dev1/0/000/000/0000000011.fid
如果正常nginx访问:
http://192.168.125.211/images/linux.jpg
反代流程:
1、客户端向服务器端发送请求,Nginx接收请求;
2、Nginx通过反向代理挑选后端任意一台Trackers服务器响应请求;
3、Trackers接收请求后再向后端数据库获取数据存储的位置;
4、Trackers接收到数据库响应回来的数据位置后再响应给Nginx;
5、Nginx接收到Trackers响应回来的数据位置后再到Storage服务器上获取实际的存储数据;
6、Storage存储服务器将文件内容通过http协议返回给Nginx;
7、Nginx将结果返回给应用层客户端。
2,安装
wget http://www.grid.net.ru/nginx/download/nginx_mogilefs_module-1.0.4.tar.gz
wget http://nginx.org/download/nginx-1.4.7.tar.gz
[root@localhost ~]# yum -y install pcre-devel
[root@localhost ~]# tar xf nginx-1.4.7.tar.gz
[root@localhost ~]# unzip nginx-mogilefs-module-master
[root@localhost ~]# cd nginx-1.4.7
[root@localhost ~]#./configure \
--prefix=/usr \
--sbin-path=/usr/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_flv_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/tmp/nginx/client/ \
--http-proxy-temp-path=/var/tmp/nginx/proxy/ \
--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \
--http-scgi-temp-path=/var/tmp/nginx/scgi \
--with-pcre \
--with-debug \
--add-module= ##指定模块解压的路径
# make && make install
wget http://www.grid.net.ru/nginx/download/nginx_mogilefs_module-1.0.4.tar.gz
wget http://nginx.org/download/nginx-1.4.7.tar.gz
[root@localhost ~]# yum -y install pcre-devel
[root@localhost ~]# tar xf nginx-1.4.7.tar.gz
[root@localhost ~]# unzip nginx-mogilefs-module-master
[root@localhost ~]# cd nginx-1.4.7
[root@localhost ~]#./configure \
--prefix=/usr \
--sbin-path=/usr/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_flv_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/tmp/nginx/client/ \
--http-proxy-temp-path=/var/tmp/nginx/proxy/ \
--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \
--http-scgi-temp-path=/var/tmp/nginx/scgi \
--with-pcre \
--with-debug \
--add-module= ##指定模块解压的路径
# make && make install
3,配置
[root@manager ~]# cat /etc/nginx/nginx.conf
#user nobody;
worker_processes 1;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
keepalive_timeout 65;
##定义upstream server调度器集群,实现负载均衡功能。
upstream trackers {
server 192.168.125.200:7001 weight=1;
server 192.168.125.201:7001 weight=1;
server 192.168.125.202:7001 weight=1;
check interval=1000 rise=2 fall=5 timeout=1000; #状态检测
}
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
##定义domain,如果mogilefs有多个domain,那么就定义多个mogilefs
location /images/ {
mogilefs_tracker trackers;
mogilefs_domain imgs;
mogilefs_methods get;
mogilefs_noverify on;
mogilefs_pass {
proxy_pass $mogilefs_path;
proxy_hide_header Content-Type;
proxy_buffering off;
}
expires 1h;
}
##开启status功能:
location /status {
check_status;
}
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
4,添加服务脚本;
此处略去。
网友评论