Spring Boot程序员

Nginx和FTP搭载图片服务器

2018-03-25  本文已影响842人  AubreyXue

最近进行公司的项目改造,这里主要讲述的是上传图片的改造内容。
传统的小项目一般都是用户访问系统,使用上传图片功能,那么图片就上传到你的当前项目所在的tomcat服务器上,在/image下,上传成功后用户可以直接访问,例如:
http://ip:port/project/images/xxx.jpg

这样做在用户少的时候是没有问题的

一、Nginx安装

1.安装gcc

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

yum install gcc-c++ 
2. openssl
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。
nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。
yum install -y openssl openssl-devel
3.解压nginx安装包
tar -vxf nginx-1.12.2.tar
4.进行./configure

在/usr/local/nginx下执行下面的命令

./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/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目录

5.安装命令
cd /var
mkdir temp
cd temp
mkdir nginx
cd ~/nginx-1.12.2
make
make install
6.启动nginx
cd /usr/local/sbin
./nginx
CD1B8639-29E3-4282-B593-EF3C04ED201B.png

看到此画面则代表nginx创建成功!

7.配置server

进入到/usr/local/nginx/conf目录下,修改nginx.conf,将此server添加到里面

server {
    listen       80;
    server_name  ip地址;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Server $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    location / {
        root  /usr/image(图片存放文件夹);
    }
        
}

例如我的服务器,将图片存放到image文件夹之后,访问服务器地址和文件名称即可查看到图片
http://xxx.xxx.xx.xxx:8080/girl.jpeg

CA7F1B62-DCFF-49D4-8DF7-D8972D689FD9.png
到这里图片访问搭建完成;
8.FTP的搭建(文件上传工具)
8.1安装 VSFTPD
yum install -y vsftpd 
8.2 启动 VSFTPD
service vsftpd start

启动后,可以看到系统已经监听了 21 端口:

netstat -nltp | grep 21

此时,访问 ftp://xxx.xxx.x.xxx 可浏览机器上的 /var/ftp目录了。

9、配置 FTP 权限

vsftpd 的配置目录为 /etc/vsftpd,包含下列的配置文件:

vsftpd.conf 为主要配置文件
ftpusers 配置禁止访问 FTP 服务器的用户列表
user_list 配置用户访问控制

9.1 阻止匿名访问和切换根目录

匿名访问和切换根目录都会给服务器带来安全风险,我们把这两个功能关闭。

编辑 /etc/vsftpd/vsftpd.conf,找到下面两处配置并修改:

# 禁用匿名用户  12 YES 改为NO
anonymous_enable=NO

# 禁止切换根目录 101 行 删除#
chroot_local_user=YES 

编辑完成后保存配置,重新启动 FTP 服务

service vsftpd restart
9.2 创建 FTP 用户

创建一个用户hrabbit

useradd hrabbit

为用户 ftpuser 设置密码

echo "hrabbit0310" | passwd hrabbit --stdin
9.3 限制该用户仅能通过 FTP 访问

限制用户hrabbit只能通过 FTP 访问服务器,而不能直接登录服务器:

usermod -s /sbin/nologin hrabbit
9.4 创建主目录

为用户hrabbit创建主目录并约定:

/usr/image中创建相关的目录

mkdir -p /usr/image
9.5 设置访问权限
chmod 777 -R /usr/image
9.6 为用户设置主目录
usermod -d /usr/image hrabbit
10、配置 FTP 权限

在网页上访问服务器


C16AAA14-EBBA-46E5-89D3-77A1EE543451.png

输入你添加的用户和密码,进入到ftp目录:


C8A0AFCA-A978-44E8-92C4-7B4CD2C86112.png

到这一步图片服务器已经搭建完成!

个人博客:http://www.hrabbit.xin
码云:https://gitee.com/hrabbit/events

上一篇下一篇

猜你喜欢

热点阅读