ubuntu-live-server-21.04安装并配置FastDFS+Nginx环境

FastDFS单机环境安装与配置

系统环境:UbuntuLiveServer-21.04-arm64

安装步骤:

  1. 从华为云开源镜像站下载UbuntuLiveServer-21.04-arm64.iso,用于搭建服务器环境
    地址:https://repo.huaweicloud.com/ubuntu-releases/21.04/ubuntu-21.04-live-server-amd64.iso

  2. 使用VMware 15.5 WorkStation Pro 安装UbuntuLiveServer,一切按默认方式安装即可,但网络适配器要改为桥接模式

  3. 等待安装完成后,更新系统软件

    1. 将apt下载源换为阿里源

      cd /etc/apt
      # 备份初始文件
      sudo cp ./sources.list ./sources.list_backup
      sudo vim sources.list
      

      向文件中写入如下内容:

      # 阿里源

      deb http://mirrors.aliyun.com/ubuntu/ hirsute main restricted universe multiverse
      deb http://mirrors.aliyun.com/ubuntu/ hirsute-security main restricted universe multiverse
      deb http://mirrors.aliyun.com/ubuntu/ hirsute-updates main restricted universe multiverse
      deb http://mirrors.aliyun.com/ubuntu/ hirsute-proposed main restricted universe multiverse
      deb http://mirrors.aliyun.com/ubuntu/ hirsute-backports main restricted universe multiverse
      deb-src http://mirrors.aliyun.com/ubuntu/ hirsute main restricted universe multiverse
      deb-src http://mirrors.aliyun.com/ubuntu/ hirsute-security main restricted universe multiverse
      deb-src http://mirrors.aliyun.com/ubuntu/ hirsute-updates main restricted universe multiverse
      deb-src http://mirrors.aliyun.com/ubuntu/ hirsute-proposed main restricted universe multiverse
      deb-src http://mirrors.aliyun.com/ubuntu/ hirsute-backports main restricted universe multiverse

    2. 更新系统软件

      sudo apt update
      sudo apt upgrade
      
  4. 安装gcc、g++与make

    FastDFS基于C/C++开发,所以部署时需要安装C/C++的编译环境

    # build-essential中包含了gcc、g++和make
    sudo apt install build-essential
    
  5. 去Github或Gitee下载FastDFS的源码

    首先要切换到root用户,并进入/usr/local/src/目录下

    su
    cd /usr/local/src
    

    之后去GitHub或者Gitee下载源码(国内建议使用Gitee下载)

    • Github:

      # 依赖文件
      wget https://github.com/happyfish100/libfastcommon/archive/V1.0.39.tar.gz -SO libfastcommon.tar.gz
      # 主程序包
      wget https://github.com/happyfish100/fastdfs/archive/V5.11.tar.gz -SO fastdfs.tar.gz
      # nginx模块
      wget https://github.com/happyfish100/fastdfs-nginx-module/archive/V1.20.tar.gz -SO fastdfs-nginx-module.tar.gz
      

      下载好之后使用tar命令解压到当前目录即可

    • Gitee:

      注意这里需要手动把压缩包名字改下,因为gitee打包后的程序都是以master.zip命名的

      # 依赖文件
      wget https://gitee.com/fastdfs100/fastdfs-nginx-module/repository/archive/master.zip
      mv master.zip fastdfs-nginx-module.zip
      # 主程序包
      wget https://gitee.com/fastdfs100/fastdfs/repository/archive/master.zip
      mv master.zip fastdfs.zip
      # nginx模块
      wget https://gitee.com/fastdfs100/libfastcommon/repository/archive/master.zip
      mv master.zip libfastcommon.zip
      

      下载好之后使用unzip命令解压到当前目录即可

  6. 安装与配置

    1. 安装FastDFS依赖文件

      cd libfastcommon-master
      ./make.sh
      ./make.sh install
      
    2. 安装FastDFS主程序

      cd ../fastdfs-master
      ./make.sh
      ./make.sh install
      

      安装好后,程序是在/usr/bin目录下,而配置文件是在/etc/fdfs目录下

    3. 配置FastDFS

      将官方提供的配置模板文件复制到/etc/fdfs目录下

      cp /usr/local/src/fastdfs-master/conf/* /etc/fdfs
      

      修改配置文件:

      • tracker.conf:

        # the tracker server port
        port=22122
        
        # the base path to store data and log files
        base_path=/var/fdfs
        
        # HTTP port on this tracker server
        http.server_port=9270
        
      • storage.conf:

        # storage所属的组
        group_name=group1
        
        # the storage server port
        port=23000
        
        # the base path to store data and log files
        base_path=/var/fdfs
        
        # store_path#, based 0, if store_path0 not exists, it's value is base_path
        # the paths must be exist
        store_path0=/var/fdfs
        #store_path1=/var/fdfs2
        
        # tracker服务器,虽然是同一台机器上,但是不能写127.0.0.1。这项配置可以出现一次或多次
        tracker_server=191.168.1.6:22122
        
        # the port of the web server on this storage server
        http.server_port=8888
        
      • client.conf:

        # the base path to store log files
        base_path=/home/caibh/fdfs/client
        # tracker_server can ocur more than once, and tracker_server format is
        #  "host:port", host can be hostname or ip address
        tracker_server=191.168.1.6:22122
        #HTTP settings
        http.tracker_server_port=9270
        
    4. 创建文件夹,否则FastDFS启动会报错说找不到文件夹

      mkdir /var/fdfs/client
      mkdir /var/fdfs/logs
      mkdir /var/fdfs/data
      
    5. 测试上传

      使用Xftp或者lrzsz的rz命令随便上传一个文件到/home/user目录下,之后运行:

      fdfs_test /etc/fdfs/client.conf upload /home/user/background.jpeg
      

      运行时候出现以下内容表示上传成功:

      group_name=group1, remote_filename=M00/00/00/wKgBBmEqQJWAZo9NAAExqgEgsTU13.jpeg
      source ip address: 192.168.1.6
      file timestamp=2021-08-28 13:56:37
      file size=78250
      file crc32=18919733
      example file url: http://192.168.1.6:9270/group1/M00/00/00/wKgBBmEqQJWAZo9NAAExqgEgsTU13.jpeg
      storage_upload_slave_by_filename
      group_name=group1, remote_filename=M00/00/00/wKgBBmEqQJWAZo9NAAExqgEgsTU13_big.jpeg
      source ip address: 192.168.1.6
      file timestamp=2021-08-28 13:56:37
      file size=78250
      file crc32=18919733
      example file url: http://192.168.1.6:9270/group1/M00/00/00/wKgBBmEqQJWAZo9NAAExqgEgsTU13_big.jpeg

      至此FastDFS主程序就安装完毕了

安装并配置Nginx使FastDFS可通过HTTP协议访问

  1. 安装Nginx

    sudo apt install nginx-core
    nginx -V
    
  2. 安装Nginx所需的依赖

    sudo apt-get install libxml2 libxml2-dev libxslt-dev
    sudo apt-get  install openssl
    sudo apt-get install libpcre3 libpcre3-dev
    sudo apt-get install libgeoip-dev
    sudo apt-get install libgd-dev
    
  3. 下载Nginx源文件,地址:http://nginx.org/download/nginx-1.18.0.tar.gz

    cd /home/user/
    wget http://nginx.org/download/nginx-1.18.0.tar.gz
    tar -xf nginx-1.18.0.tar.gz
    mv nginx-1.18.0 nginx-src
    cd nginx-src
    
  4. 在nginx-src目录下创建一个custom_config.sh文件,用于配置Nginx

    vim custom_config.sh
    
    # 文件中写入以下内容
    ./configure \
    --with-cc-opt='-g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2' \
    --with-ld-opt='-Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now' \
    --prefix=/usr/share/nginx \
    --conf-path=/etc/nginx/nginx.conf \
    --http-log-path=/var/log/nginx/access.log \
    --error-log-path=/var/log/nginx/error.log \
    --lock-path=/var/lock/nginx.lock \
    --pid-path=/run/nginx.pid \
    --http-client-body-temp-path=/var/lib/nginx/body \
    --http-fastcgi-temp-path=/var/lib/nginx/fastcgi \
    --http-proxy-temp-path=/var/lib/nginx/proxy \
    --http-scgi-temp-path=/var/lib/nginx/scgi \
    --http-uwsgi-temp-path=/var/lib/nginx/uwsgi \
    --with-debug \
    --with-pcre-jit \
    --with-ipv6 \
    --with-http_ssl_module \
    --with-http_stub_status_module \
    --with-http_realip_module \
    --with-http_auth_request_module \
    --with-http_addition_module \
    --with-http_dav_module \
    --with-http_geoip_module \
    --with-http_gunzip_module \
    --with-http_gzip_static_module \
    --with-http_image_filter_module \
    --with-http_v2_module \
    --with-http_sub_module \
    --with-http_xslt_module \
    --with-stream \
    --with-stream_ssl_module \
    --with-mail \
    --with-mail_ssl_module \
    --with-threads \
    --add-module=/usr/local/src/fastdfs-nginx-module-master/src
    

    之后为这个文件加上可执行权限并执行

    chmod +x custom_config.sh
    ./custom_config.sh
    

    出现以下内容表示配置成功:

    Configuration summary
      + using threads
      + using system PCRE library
      + using OpenSSL library: /usr/bin/openssl
      + using system zlib library
    
      nginx path prefix: "/usr/share/nginx"
      nginx binary file: "/usr/share/nginx/sbin/nginx"
      nginx modules path: "/usr/share/nginx/modules"
      nginx configuration prefix: "/etc/nginx"
      nginx configuration file: "/etc/nginx/nginx.conf"
      nginx pid file: "/run/nginx.pid"
      nginx error log file: "/var/log/nginx/error.log"
      nginx http access log file: "/var/log/nginx/access.log"
      nginx http client request body temporary files: "/var/lib/nginx/body"
      nginx http proxy temporary files: "/var/lib/nginx/proxy"
      nginx http fastcgi temporary files: "/var/lib/nginx/fastcgi"
      nginx http uwsgi temporary files: "/var/lib/nginx/uwsgi"
      nginx http scgi temporary files: "/var/lib/nginx/scgi"
    
  5. 备份nginx的可执行文件和配置文件

    sudo cp /usr/sbin/nginx /usr/sbin/nginx_org_bak
    sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
    
  6. 编译并安装Nginx

    cd /home/user/nginx-src
    sudo make
    sudo make install
    
  7. 关闭系统原有的nginx,并备份好系统原来的nginx文件

    sudo nginx -s stop
    cd /usr/sbin
    sudo cp /usr/sbin/nginx /usr/sbin/nginx_bak
    
  8. 备份好后创建一个软链接,放在/usr/sbin目录下

    # 检查自己编译出来的nginx能否运行
    /usr/share/nginx/sbin/nginx -v
    
    #创建软链接
    sudo ln -s /usr/share/nginx/sbin/nginx /usr/sbin/nginx
    
  9. 配置Nginx

    在/etc/fdfs目录下创建mod_fastdfs.conf文件,写入如下内容:

    connect_timeout=2
    network_timeout=30
    base_path=/tmp
    load_fdfs_parameters_from_tracker=true
    storage_sync_file_max_delay = 86400
    use_storage_id = false
    storage_ids_filename = storage_ids.conf
    tracker_server=192.168.1.6:22122
    storage_server_port=23000
    group_name=group1
    url_have_group_name = true
    store_path_count=1
    store_path0=/var/fdfs
    log_level=info
    log_filename=
    response_mode=proxy
    if_alias_prefix=
    flv_support = true
    flv_extension = flv
    group_count = 0
    

    修改/etc/nginx/nginx.conf文件,添加如下内容:

    location ~ /group[1-9]/M0[0-9] {
           ngx_fastdfs_module;
    }
    

    执行命令:

    nginx -c /etc/nginx/nginx.conf -t
    

    出现以下内容表示nginx配置成功:

    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful
    

    在浏览器中通过url访问之前测试上传的图片:

    http://192.168.1.6:9270/group1/M00/00/00/wKgBBmEqQJWAZo9NAAExqgEgsTU13.jpeg

    发现图片可正常显示,自此Nginx+FastDFS环境搭建完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值