CentOS 6.4 安装 FastDFS、使用Nginx作为文件访问WEB服务器

安装环境:
1. CentOS-6.4-i386
2. FastDFS_v4.06
3. fastdfs-nginx-module_v1.15
4. Nginx-1.5.6(安装见此
5. libevent-2.0.21-stable

tracker server  IP:192.168.1.11

storage1 server IP:192.168.1.12 group1

storage2 server IP:192.168.1.13 group2

storage3 server IP:192.168.1.14 group2

1. CentOS系统初始化:
    #yum预装常用的服务器软件
      yum -y install gcc gcc-c++

2. 系统操作环境的设置
    #软件安装包存储
      /usr/local/src
    #libevent安装目录
      /usr/local/libevent

#fastdfs安装目录
      /usr/local/fastdfs
    #nginx安装目录
      /usr/local/nginx

3. 安装libevent( fastdfs在编译源程序时fastdfs内部调用libevent的处理机制,,需要用到libevent一些依赖文件,否则编译fastdfs会出错)
    #卸载系统自带libevent,自带版本过低,安装fastdfs会出错
      1> rpm -qa|grep libevent
      2> yum remove libevent*
    #下载安装libevent:
      1> wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
      2> tar -zxvf libevent-2.0.21-stable.tar.gz
      3> cd libevent-2.0.21-stable
      4> ./configure --prefix=/usr/local/libevent
      5> make && make install
    #为libevent创建软链接到/lib库下,64位系统对应/lib64
      ln -s /usr/local/libevent/lib/libevent-2.0.so.5 /usr/lib/libevent-2.0.so.5
      ln -s /usr/local/libevent/lib/libevent-2.0.so.5 /usr/lib64/libevent-2.0.so.5

4. 安装FastDFS
    1> wget http://fastdfs.googlecode.com/files/FastDFS_v4.06.tar.gz
    2> tar -zxvf FastDFS_v4.06.tar.gz
    3> cd FastDFS
    4> #由于定义/usr/local/fastdfs为fastdfs安装目录,所以需要修改make.sh
           vi make.sh
           #内容更改如下

TARGET_PREFIX=/usr/local 修改为 /usr/local/fastdfs
           将/etc/fdfs 全部替换为 /usr/local/fastdfs/conf
    5> #安装
           ./make.sh C_INCLUDE_PATH=/usr/local/libevent/include LIBRARY_PATH=/usr/local/libevent/lib
           ./make.sh install

5. 配置Tracker
①创建tracker目录保存运行日志
     mkdir -m 777 -p /home/fastdfs/tracker
②修改tracker.conf配置
  vim /usr/local/fastdfs/conf/tracker.conf
  修改内容如下所示

# the tracker server port
port=22122
# the base path to store data and log files
base_path=/home/yuqing/fastdfs -> base_path=/home/fastdfs/tracker #日志目录
#开启自定义server ID取代ip形式,方便内部网络服务器更换ip#**此方式要重点理解,4.0以后新特性
use_storage_id = true #使用server ID作为storage server标识
storage_ids_filename = storage_ids.conf #<id> <group_name> <ip_or_hostname>
id_type_in_filename = id #文件名反解析中包含server ID,以前是ip

③移动storage_ids.conf文件
     cp -r /usr/local/src/FastDFS/conf/storage_ids.conf /usr/local/fastdfs/conf/
④编辑storage服务器ID与IP地址的对应关系
     vim /usr/local/fastdfs/conf/storage_ids.conf
修改内容如下所示

#<id> <group_name> <ip_or_hostname>
 100001          group1           192.168.1.12
 100002          group2           192.168.1.13
 100003          group2           192.168.1.14

⑤编辑启动脚本
  vim /etc/init.d/fdfs_trackerd
  启动脚本内容如下

#!/bin/bash
#
# fdfs_storaged Starts fdfs_storaged
#
#
# chkconfig: 2345 99 01
# description: FastDFS storage server
### BEGIN INIT INFO
# Provides: $fdfs_storaged
### END INIT INFO
# Source function library.
. /etc/init.d/functions
FastDfs=‘/usr/local/fastdfs‘
CONF="$FastDfs/conf/storage.conf"
if [ ! -f $CONF ]; then
  echo "file $CONF does not exist!"
  exit 2
fi
PRG="$FastDfs/bin/fdfs_storaged"
if [ ! -f $PRG ]; then
  echo "file $PRG does not exist!"
  exit 2
fi
Stop="$FastDfs/bin/stop.sh"
if [ ! -f $Stop ]; then
  echo "file $Stop does not exist!"
  exit 2
fi
Restart="$FastDfs/bin/restart.sh"
if [ ! -f $Restart ]; then
  echo "file $Restart does not exist!"
  exit 2
fi
RETVAL=0
start() {
    echo -n $"Starting FastDFS storage server: "
    $PRG $CONF &
    RETVAL=$?
    echo
    return $RETVAL
}
stop() {
    echo -n $"Stop FastDFS storage server: "
    $Stop $PRG $CONF
    RETVAL=$?
    return $RETVAL
}
rhstatus() {
    status fdfs_storaged
}
restart() {
        $Restart $PRG $CONF &
}
case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  status)
    rhstatus
    ;;
  restart|reload)
    restart
    ;;
  condrestart)
    restart
    ;;
  *)
    echo $"Usage: $0 {start|stop|status|restart|condrestart}"
    exit 1
esac
exit $?

⑥给启动脚本增加权限
     chmod 777 /etc/init.d/fdfs_storaged
   启动storage
     service fdfs_storaged restart
   接下来会出现很多mkdir data path,这是系统在创建数据目录,如下图所示
   
⑦启动成功,加入开机启动
   vim /etc/rc.d/rc.local
   加入内容如下
   service fdfs_storaged start

7. 安装nginx(仅Storage)
    #创建nginx日志目录
      mkdir -m 777 -p /home/www/logs
    #安装nginx必需的库:zlib-devel openssl-devel pcre
      yum -y install zlib-devel openssl-devel
      #手动安装pcre
      1> wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.33.tar.gz
      2> tar -zxvf pcre-8.33.tar.gz
      3> cd pcre-8.33
      4> ./configure
      5> make && make install
      6> ln -s /usr/local/lib/libpcre.so.1 /lib
    #安装nginx
      1> wget http://nginx.org/download/nginx-1.5.6.tar.gz
      2> tar -zxvf nginx-1.5.6.tar.gz
      3> cd nginx-1.5.6
      4> ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
      5> make && make install
     #检查nginx配置是否正确
       /usr/local/nginx/sbin/nginx -t
     #出现以下类似信息表示配置正确
     
     #查看nginx编译选项
       /usr/local/nginx/sbin/nginx -V
     #编辑启动脚本
       vim /etc/init.d/fdfs_storaged
       #启动脚本内容如下

#!/bin/sh
#
# nginx - this script starts and stops the nginx daemin
#
# chkconfig:   - 85 15
# description:  Nginx is an HTTP(S) server, HTTP(S) reverse \
#               proxy and IMAP/POP3 proxy server
# processname: nginx
# config:      /usr/local/nginx/conf/nginx.conf
# pidfile:     /usr/local/nginx/nginx.pid
# admin        chenai
# Last Updated 20120.6.1

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0

#必填
nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)
#必填
NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"

[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx

lockfile=/var/lock/subsys/nginx

start() {
    [ -x $nginx ] || exit 5
    [ -f $NGINX_CONF_FILE ] || exit 6
    echo -n $"Starting $prog: "
    daemon $nginx -c $NGINX_CONF_FILE
    retval=$?
    echo
    #service php-fpm start
    [ $retval -eq 0 ] && touch $lockfile
    return $retval
}
stop() {
    echo -n $"Stopping $prog: "
    $nginx -s stop
    echo_success
    retval=$?
    echo
    #service php-fpm stop
    [ $retval -eq 0 ] && rm -f $lockfile
    return $retval
}
restart() {
    stop
    start
}
reload() {
    configtest || return $?
    echo -n $"Reloading $prog: "
    $nginx -s reload
    RETVAL=$?
    echo
}
force_reload() {
    restart
}
configtest() {
  $nginx -t -c $NGINX_CONF_FILE
}
version() {
  $nginx -V
}
rh_status() {
    status $prog
}
rh_status_q() {
    rh_status >/dev/null 2>&1
}

case "$1" in
    start)
        rh_status_q && exit 0
        $1
        ;;
    stop)
        rh_status_q || exit 0
        $1
        ;;
    restart|configtest|version)
        $1
        ;;
    reload)
        rh_status_q || exit 7
        $1
        ;;
    force-reload)
        force_reload
        ;;
    status)
        rh_status
        ;;
    condrestart|try-restart)
        rh_status_q || exit 0
            ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest|version}"
        exit 2
esac

#给启动脚本增加权限
       chmod 777 /etc/init.d/nginxd
     #启动nginx
       service nginxd restart
     #启动成功,加入开机启动
       vim /etc/rc.d/rc.local
       #加入内容如下
       service nginxd start

8. 安装nginx-module模块(仅Storage)
    1> wget http://fastdfs.googlecode.com/files/fastdfs-nginx-module_v1.15.tar.gz
    2> tar -zxvf fastdfs-nginx-module_v1.15.tar.gz;
    #修改插件配置文件
      vim /usr/local/src/fastdfs-nginx-module/src/config
      #修改内容如下

ngx_addon_name=ngx_http_fastdfs_module
HTTP_MODULES="$HTTP_MODULES ngx_http_fastdfs_module"
NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_fastdfs_module.c"
CORE_INCS="$CORE_INCS /usr/local/fastdfs/include/fastdfs /usr/local/fastdfs/include/fastcommon/"
CORE_LIBS="$CORE_LIBS -L/usr/local/fastdfs/lib -lfastcommon -lfdfsclient"
CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE=‘256*1024‘ -DFDFS_MOD_CONF_FILENAME=‘\"/usr/local/fastdfs/conf/mod_fastdfs.conf\"‘"

#复制mod_fastdfs.conf到/usr/local/fastdfs/conf/目录下
      cp /usr/local/src/fastdfs-nginx-module/src/mod_fastdfs.conf /usr/local/fastdfs/conf/
    #将/usr/local/fastdfs/lib 加入系统文件/etc/ld.so.conf中(编译时使用的动态链接库)
      vim /etc/ld.so.conf
      #修改内容如下
      /usr/local/fastdfs/lib
    #更新库文件缓存ld.so.cache
      /sbin/ldconfig
    #编译fastdfs-nginx-module模块
      1> cd nginx-1.1.19/
 
    2> ./configure 此处加上nginx之前的编译参数(使用 /usr/local/nginx/sbin/nginx
-V 命令查看) --add-module=/usr/local/src/fastdfs-nginx-module/src
      3> make && make install
    #修改mod_fastdfs.conf配置
      vim /usr/local/fastdfs/conf/mod_fastdfs.conf
      #修改内容如下

# if load FastDFS parameters from tracker server
# since V1.12
# default value is false
load_fdfs_parameters_from_tracker=true
# FastDFS tracker_server can ocur more than once, and tracker_server format is
#  "host:port", host can be hostname or ip address
# valid only when load_fdfs_parameters_from_tracker is true
tracker_server=192.168.25.11:22122
# the port of the local storage server
# the default value is 23000
storage_server_port=23000
# the group name of the local storage server
group_name=group1 #当前storage机器组名
# if the url / uri including the group name
# set to false when uri like /M00/00/00/xxx
# set to true when uri like ${group_name}/M00/00/00/xxx, such as group1/M00/xxx
# default value is false
url_have_group_name = true
# path(disk or mount point) count, default value is 1
# must same as storage.conf
store_path_count=1
# store_path#, based 0, if store_path0 not exists, it‘s value is base_path
# the paths must be exist
# must same as storage.conf
store_path0=/home/fastdfs/storage
# set the log filename, such as /usr/local/apache2/logs/mod_fastdfs.log
# empty for output to stderr (apache and nginx error_log file)
log_filename=/home/www/logs/mod_fastdfs.log

#修改nginx.conf配置
      vim /usr/local/nginx/conf/nginx.conf
      #修改内容如下

worker_processes  2;
error_log  /home/www/logs/error.log  notice;
pid        /home/www/logs/nginx.pid;

worker_rlimit_nofile 5120;
events {
    use epoll;
    worker_connections  5120;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

sendfile        on;
    tcp_nopush     on;
    keepalive_timeout  60;
    tcp_nodelay on;

server {
        listen       80;
        server_name  localhost;
        location /组名/M00 {
            alias /home/fastdfs/storage/data;
            ngx_fastdfs_module;
        }
    }
}

#重启nginx服务
    service nginxd restart

9. 测试FastDFS

时间: 2024-08-28 11:17:21

CentOS 6.4 安装 FastDFS、使用Nginx作为文件访问WEB服务器的相关文章

CentOS 7 下安装 LEMP 服务(nginx、MariaDB/MySQL 和 php)

原文 CentOS 7 下安装 LEMP 服务(nginx.MariaDB/MySQL 和 php) LEMP 组合包是一款日益流行的网站服务组合软件包,在许多生产环境中的核心网站服务上起着强有力的作用.正如其名称所暗示的, LEMP 包是由 Linux.nginx.MariaDB/MySQL 和 PHP 组成的.在传统的 LAMP 包中使用的 Apache HTTP 协议服务器性能低下而且难于大规模集群,相比来说 nginx 的高性能及轻量级等特性,正是其的替代方案. MariaDB 是一款社

keepalived+nginx+tomcat搭建高性能web服务器集群

使用keepalived+nginx+tomcat搭建高性能web服务器集群,系统采用centos6.9,前端用nginx做反向代理实现负载均衡,同时结合keepalived对nginx实现高可用,后端使用两台tomcat做动态jsp解析,实现了动静分离. 搭建环境 准备四台服务器 vip: 192.168.75.130master: 192.168.75.131 (安装nginx做反向代理实现负载匀衡,结合keepalived实现高可用)backup: 192.168.75.132 (同上)w

Nginx+uWSGI+Django部署web服务器

目录 Nginx+uWSGI+Django部署web服务器 环境说明 前言 搭建项目 Django部署 编辑luffy/luffy/settings.py 编辑luffy/app01/views.py 编辑luffy/luffy/urls.py 运行并测试 uWSGI部署 测试运行uWSGI 使用uWSGI运行django项目 uWSGi热加载Djangoa项目 部署nginx nginx配置uwsgi和django django部署static文件 重新加载nginx进行测试 测试nginx

配置Nginx防止直接用IP访问Web服务器

看了很多Nginx的配置,好像都忽略了ip直接访问Web的问题,这样理论上不利于SEO优化,所以我们希望可以避免直接用IP访问网站,而是域名访问,具体怎么做呢,看下面. 官方文档中提供的方法: If you do not want to process requests with undefined "Host" header lines, you may define a default server that just drops the requests: server { li

Apache、IIS、Nginx等绝大多数web服务器,都不允许静态文件响应POST请求

最近调用一个接口,发现httppost请求目标网站会出现405 状态码,原因为 Apache.IIS.Nginx等绝大多数web服务器,都不允许静态文件响应POST请求 所以将post请求改为get请求即可 package com.changyou.test; import java.io.IOException; import java.io.UnsupportedEncodingException; //import org.apache.commons.httpclient.HttpCli

CentOS单机安装FastDFS&amp;整合Nginx

单机安装 一 准备工作 准备linux服务器或虚拟机,这里是虚拟机,操作系统CentOS 6.4 Tracker 和 Storage 安装在一台机器上 FastDFS 5.08版本 1,准备软件 软件下载:http://sourceforge.net/projects/fastdfs/files/               文中用到的 https://pan.baidu.com/s/1IeZqzt6Gc5Yc34RMwew3nQ     提取码:7dvf  2,安装gcc FastDFS是C语

centos 系统下安装FastDFS+nginx+fastdfs-nginx-module安装配置

前言: 以前的项目上传的文件都是保存到本地或者是局域网内的共享文件夹下,由于数据量,服务器的负载均衡(分机的某些图片无法访问的问题处理)等因素的情况下,就想到用fastdfs来文件管理,花了几天时间硬着头皮去学习怎样安装配置,由于linux基础不好,安装配置起来感觉有点费力,不得不随时去查找一些资料,好在经过这几天的努力安装配置fastdfs最终还是搞定了,最终的付出并没有白费,以下是个人的见解,如有误差,请多多指导.不了解fastdfs的童鞋可以先去了解下,请看http://tech.uc.c

centos7安装FastDFS和nginx

1.所需的安装包: 链接:https://pan.baidu.com/s/1Hm48o3aBYn0C7PyWzBGUqw 密码:kio7 2安装centos7 2.1Centos7打开网络的步骤 输入ifconfig 看本机的网络ip 输入vi /etc/sysconfig/network-scripts/ifcfg-ens33把文件里的ONBOOT=yes 输入service network start 开启网关 输入ip addr show 查找本机的外网ip地址 2.2安装xshell上传

CentOS 6.4 Heartbeat+httpd+nfs实现高可用的web服务器

一.Heartbeat概念 Heartbeat是Linux-HA项目中的一个组件,也是目前开源HA项目中最成功的一个例子, Linux-HA的全称是High-Availability Linux,这个开源项目的目标是:通过社区开发者的共同努力,提供一个增强linux可靠性(reliability).可用性(availability)和可服务性(serviceability)(RAS)的群集解决方案.Heartbeat提供了所有 HA 软件所需要的基本功能,比如心跳检测和资源接管.监测群集中的系统