阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Linux下使用Nginx+vsftpd搭建图片服务器

429次阅读
没有评论

共计 5595 个字符,预计需要花费 14 分钟才能阅读完成。

传统项目中的图片管理

传统项目中,可以在 web 项目中添加一个文件夹,来存放上传的图片。例如在工程的根目录 WebRoot 下创建一个 images 文件夹。把图片存放在此文件夹中就可以直接使用在工程中引用。

优点:引用方便,便于管理

缺点:

1、如果是分布式环境图片引用会出现问题。

2、图片的下载会给服务器增加额外的压力。

一、安装 Nginx
1 nginx 安装环境
nginx 是 C 语言开发,建议在 linux 上运行,本教程使用 CentOS6.5 作为安装环境。

安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,需要安装 gcc:

yum install gcc-c++

PCRE(Perl Compatible Regular Expressions)是一个 Perl 库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库。

yum install -y pcre pcre-devel

注:pcre-devel 是使用 pcre 开发的一个二次开发库。nginx 也需要此库。

zlib 库提供了很多种压缩和解压缩的方式,nginx 使用 zlib 对 http 包的内容进行 gzip,所以需要在 linux 上安装 zlib 库。

yum install -y zlib zlib-devel

OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。

nginx 不仅支持 http 协议,还支持 https(即在 ssl 协议上传输 http),所以需要在 linux 安装 openssl 库。

yum install -y openssl openssl-devel

2 编译安装
将 nginx-1.8.0.tar.gz 拷贝至 linux 服务器。

解压:

tar -zxvf nginx-1.8.0.tar.gz 进入目录:

cd nginx-1.8.0

2.1、configure

./configure –help 查询详细参数(参考本教程附录部分:nginx 编译参数)

参数设置如下:

./configure \

–prefix=/usr/local/nginx \

–pid-path=/var/run/nginx.pid \

–lock-path=/var/lock/nginx.lock \

–error-log-path=/var/log/nginx/error.log \

–http-log-path=/var/log/nginx/access.log \

–with-http_gzip_static_module \

–http-client-body-temp-path=/var/temp/nginx/client \

–http-proxy-temp-path=/var/temp/nginx/proxy \

–http-fastcgi-temp-path=/var/temp/nginx/fastcgi \

–http-uwsgi-temp-path=/var/temp/nginx/uwsgi \

–http-scgi-temp-path=/var/temp/nginx/scgi

注意:上边将临时文件目录指定为 /var/temp/nginx,需要在 /var 下创建 temp 及 nginx 目录

2.2、编译安装

make

make  install

安装成功查看安装目录:

cd /usr/local/nginx/

Linux 下使用 Nginx+vsftpd 搭建图片服务器

2.3 启动 nginx
 

进入目录:

cd /usr/local/nginx/sbin/ 启动:

./nginx

查询 nginx 进程:

ps aux|grep nginx

查看 nginx 状态:

service nginx status

Linux 下使用 Nginx+vsftpd 搭建图片服务器

2.4 测试
nginx 安装成功,启动 nginx,即可访问虚拟机上的 nginx:

查看 ip 地址:ifconfig

Linux 下使用 Nginx+vsftpd 搭建图片服务器

访问地址:http:172.20.10.7

2.5 停止 nginx
 

方式 1,快速停止:

cd /usr/local/nginx/sbin./nginx -s stop

此方式相当于先查出 nginx 进程 id 再使用 kill 命令强制杀掉进程。

方式 2,完整停止(建议使用):

cd /usr/local/nginx/sbin./nginx -s quit

此方式停止步骤是待 nginx 进程处理任务完毕进行停止。

2.6 重启 nginx

方式 1,先停止再启动(建议使用):

对 nginx 进行重启相当于先停止 nginx 再启动 nginx,即先执行停止命令再执行启动命令。

如下:

./nginx -s quit./nginx

方式 2,重新加载配置文件:

当 nginx 的配置文件 nginx.conf 修改后,要想让配置生效需要重启 nginx,使用 -s reload 不用先停止 nginx 再启动 nginx 即可将配置信息在 nginx 中生效,如下:

./nginx -s reload2.7 开机自启动 nginx

2.7.1 编写 shell 脚本
这里使用的是编写 shell 脚本的方式来处理

vi /etc/init.d/nginx  (输入下面的代码)

#!/bin/bash
# nginx Startup script for the Nginx HTTP Server
# it is v.0.0.2 version.
# chkconfig: – 85 15
# description: Nginx is a high-performance web and proxy server.
#              It has a lot of features, but it’s not for everyone.
# processname: nginx
# pidfile: /var/run/nginx.pid
# config: /usr/local/nginx/conf/nginx.conf
nginxd=/usr/local/nginx/sbin/nginx
nginx_config=/usr/local/nginx/conf/nginx.conf
nginx_pid=/var/run/nginx.pid
RETVAL=0
prog=”nginx”
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[${NETWORKING} = “no” ] && exit 0
[-x $nginxd] || exit 0
# Start nginx daemons functions.
start() {
if [-e $nginx_pid];then
  echo “nginx already running….”
  exit 1
fi
  echo -n $”Starting $prog: “
  daemon $nginxd -c ${nginx_config}
  RETVAL=$?
  echo
  [$RETVAL = 0] && touch /var/lock/subsys/nginx
  return $RETVAL
}
# Stop nginx daemons functions.
stop() {
        echo -n $”Stopping $prog: “
        killproc $nginxd
        RETVAL=$?
        echo
        [$RETVAL = 0] && rm -f /var/lock/subsys/nginx /var/run/nginx.pid
}
# reload nginx service functions.
reload() {
    echo -n $”Reloading $prog: “
    #kill -HUP `cat ${nginx_pid}`
    killproc $nginxd -HUP
    RETVAL=$?
    echo
}
# See how we were called.
case “$1” in
start)
        start
        ;;
stop)
        stop
        ;;
reload)
        reload
        ;;
restart)
        stop
        start
        ;;
status)
        status $prog
        RETVAL=$?
        ;;
*)
        echo $”Usage: $prog {start|stop|restart|reload|status|help}”
        exit 1
esac
exit $RETVAL

按 Esc,然后输入  :wq  保存并退出

2.7.2 设置文件的访问权限
chmod a+x /etc/init.d/nginx  (a+x ==> all user can execute  所有用户可执行)

这样在控制台就很容易的操作 nginx 了:查看 Nginx 当前状态、启动 Nginx、停止 Nginx、重启 Nginx…

/etc/init.d/nginx status

/etc/init.d/nginx start

/etc/init.d/nginx stop

/etc/init.d/nginx restart

Linux 下使用 Nginx+vsftpd 搭建图片服务器

如果修改了 nginx 的配置文件 nginx.conf,也可以使用上面的命令重新加载新的配置文件并运行,可以将此命令加入到 rc.local 文件中,这样开机的时候 nginx 就默认启动了

2.7.3 加入到 rc.local 文件中
 

vi /etc/rc.local

加入一行  /etc/init.d/nginx start    保存并退出,下次重启会生效

二、Linux 安装 ftp 组件
1 安装 vsftpd 组件
安装完后,有 /etc/vsftpd/vsftpd.conf 文件,是 vsftp 的配置文件。

[root@bogon ~]# yum -y install vsftpd

2 添加一个 ftp 用户
此用户就是用来登录 ftp 服务器用的。

[root@bogon ~]# useradd ftpuser

这样一个用户建完,可以用这个登录,记得用普通登录不要用匿名了。登录后默认的路径为 /home/ftpuser.

3 给 ftp 用户添加密码。
[root@bogon ~]# passwd ftpuser

输入两次密码后修改密码。

4 防火墙开启 21 端口
查看防火墙状态:systemctl status firewalld

开启端口:firewall-cmd –zone=public –add-port=21/tcp –permanent

重新加载端口配置:firewall-cmd –reload

查询端口号 21 是否开启:firewall-cmd –query-port=21/tcp

查询有哪些端口是开启的:  firewall-cmd –list-port

关闭防火墙:systemctl stop firewalld.service   

开启防火墙:systemctl start firewalld

禁止 firewall 开机启动:systemctl disable firewalld.service 

CentOS 升级到 7 之后,发现无法使用 iptables 控制 Linuxs 的端口,baidu 之后发现 Centos 7 使用 firewalld 代替了原来的 iptables。

 
5 修改 selinux
 

外网是可以访问上去了,可是发现没法返回目录(使用 ftp 的主动模式,被动模式还是无法访问),也上传不了,因为 selinux 作怪了。

修改 selinux:

执行以下命令查看状态:

[root@bogon ~]# getsebool -a | grep ftp 

allow_ftpd_anon_write –> off

allow_ftpd_full_access –> off

allow_ftpd_use_cifs –> off

allow_ftpd_use_nfs –> off

ftp_home_dir –> off

ftpd_connect_db –> off

ftpd_use_passive_mode –> off

httpd_enable_ftp_server –> off

tftp_anon_write –> off

执行上面命令,再返回的结果看到两行都是 off,代表,没有开启外网的访问

[root@bogon ~]# setsebool -P allow_ftpd_full_access on

[root@bogon ~]# setsebool -P ftp_home_dir on

6 关闭匿名访问
修改 /etc/vsftpd/vsftpd.conf 文件:

Linux 下使用 Nginx+vsftpd 搭建图片服务器

重启 ftp 服务:

[root@bogon ~]# service vsftpd restart

查看状态:systemctl status vsftpd.service 

———————

7 设置开机启动 vsftpd ftp 服务
[root@bogon ~]# chkconfig vsftpd on

三、创建目录
mkdir /home/ftpuser/www/images/

修改用户访问权限

chown ftpuser /home/ftpuser
chmod 777 -R /home/ftpuser

 修改 nginx/conf/nginx.conf 在默认的 server 里再添加一个 location 并指定实际路径:

进入目录:cd /usr/local/nginx/con/

编辑:vim nginx.conf

location / {
root /home/ftpuser/www;# 定义服务器的默认网站根目录位置
index index.html index.htm;
}

Linux 下使用 Nginx+vsftpd 搭建图片服务器

修改完后需要重新启动 nginx

service nginx restart 说明

 root 则是将 images 映射到 /home/ftpuser/www/images/

确认 nginx 和  vsftpd 启动成功后 可以试着上传文件到 /home/ftpuser/www/images/ 目录下

打开浏览器访问:http://172.20.10.7/images/bg1.jpg

Linux 下使用 Nginx+vsftpd 搭建图片服务器

完毕!

good luck!

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计5595字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7991121
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
星哥带你玩飞牛NAS-7:手把手教你免费内网穿透-Cloudflare tunnel

星哥带你玩飞牛NAS-7:手把手教你免费内网穿透-Cloudflare tunnel

星哥带你玩飞牛 NAS-7:手把手教你免费内网穿透 -Cloudflare tunnel 前言 大家好,我是星...
星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛 NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手! 作为动漫爱好者,你是否还在为...
星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛 NAS 硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话? 前言 在选择 NAS 用预...
如何安装2026年最强个人助理ClawdBot、完整安装教程

如何安装2026年最强个人助理ClawdBot、完整安装教程

如何安装 2026 年最强个人助理 ClawdBot、完整安装教程 一、前言 学不完,根本学不完!近期,一款名...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击 PHP-FPM(FastCGl Process M...
12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换...
自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个 AI 智能体 — 跟创业大佬对话 前言 智能体(Agent)已经成为创业者和技术人绕...
星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛 NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手! 作为动漫爱好者,你是否还在为...
开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

  开源 MoneyPrinterTurbo 利用 AI 大模型,一键生成高清短视频! 在短视频内容...