【JAVA】nginx+vsftp搭建图片服务器

防火墙设置

Centos7 下默认的防火墙是 Firewall,替代了之前的 iptables
进入系统之后,Centos7 默认是已安装了 Firewall
但是没有启动的,所以需要先启动下 Firewall,同时设置开机自启动
sudo systemctl restart firewalld    
sudo systemctl enable firewalld.service
sudo systemctl status firewalld.service

#查看防火墙状态,是否是running
sudo firewall-cmd --state   
#重新载入配置,比如添加规则之后,需要执行此命令
sudo firewall-cmd --reload  
#列出所有的开放端口                      
sudo firewall-cmd --list-all 
           
##列出支持的zone
sudo firewall-cmd --get-zones                       
##列出支持的服务,在列表中的服务是放行的
sudo firewall-cmd --get-services                    
##查看ftp服务是否支持,返回yes或者no
sudo firewall-cmd --query-service ftp               
sudo firewall-cmd --add-service=ftp                 ##临时开放ftp服务
sudo firewall-cmd --add-service=ftp --permanent     ##永久开放ftp服务
sudo firewall-cmd --remove-service=ftp --permanent  ##永久移除ftp服务
##永久添加80端口    
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --zone=public --remove-port=8080/tcp --permanent
    
##查看规则,这个命令是和iptables的相同的   
sudo iptables -L -n      
##查看帮助                           
sudo man firewall-cmd  

nginx

更新系统,确保你的服务器系统处于最新状态:
sudo yum -y update

下载Nginx
wget http://nginx.org/download/nginx-1.14.0.tar.gz

安装第三方库
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
yum install -y pcre pcre-devel


安装成功以后可以查看pcre版本: pcre-config --version
[root@yangjunhost /]# pcre-config --version
8.32

解压安装包
tar -zxvf nginx-1.14.0.tar.gz

从configure脚本自动生成Makefile
cd /root/nginx-1.14.0
./configure --prefix=/usr/local/webserver/nginx
这里的 —prefix 选项是指定Nginx的安装路径,这里我是指定安装到路径:/usr/local/webserver/nginx

编译安装
cd /root/nginx-1.14.0
make && make install

常用指令
ps -ef|grep nginx  #查看nginx进程是否启动
nginx -c /usr/local/nginx/conf/nginx.conf #指定配置文件启动
nginx -s reload            # 重新载入配置文件
nginx -s reopen          #重启 Nginx
nginx -s stop              # 停止 Nginx
whereis nginx            #查找nginx
nginx -t                  #测试nginx测试文件是否正确
nginx -v                      #查看Nginx版本
命令行进入nginx根目录,执行如下命令,停止服务器:
nginx -s quit
sudo vim /etc/nginx/nginx.conf
sudo pkill -9 nginx

设置Nginx服务器自动启动:
sudo systemctl enable nginx.service
启动Nginx并查看Nginx服务状态:
sudo systemctl start nginx.service
sudo systemctl restart nginx.service
sudo systemctl status nginx.service
sudo systemctl reload nginx.service

:set number 显示行号

开启防火墙端口:
我们把nginx和vsftp要用到的端口先开启,免得后面出错:
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --zone=public --add-port=22/tcp --permanent
firewall-cmd --zone=public --add-port=21/tcp --permanent
firewall-cmd --zone=public --add-port=30000-30999/tcp --permanent

最简单安装
sudo yum -y install nginx

vsftp的安装:

sudo rpm -qa | grep vsftpd #检查是否安装过
yum -y install vsftpd  # 默认配置文件再/etc/vsftpd/vsftpd.conf下

mkdir /ftpfile 创建目录

添加匿名用户:  
useradd ftpuser -d /ftpfile/ -s /sbin/nologin

修改ftpfile权限 :
chown -R ftpuser.ftpuser /ftpfile/

passwd ftpuser      #给ftp用户添加密码,输入两次密码后修改密码。

vim etc/vsftpd/vsftpd.conf
搜索到ftpd_banner=Welcome to blah FTP service.打开这个注释,添加部分配置
systemctl restart vsftpd.service(重启)



useradd ftpuser      #添加ftp用户
mkdir /ftpfile/ftp
chown -R ftpuser.ftpuser /ftpfile/ftp

给/ftpfile(ftpuser的用户目录)下创建子目录/ftp,并赋予777权限。
为什么这样做呢?因为新版本的vsftpd不允许用户对用户的加目录进行写的权限,
所以我们给用户加目录755权限,给家目录下的子目录777的权限。

chmod 755 -R /ftpfile
chmod 777 -R /ftpfile/ftp

进入etc/vsftpd, vim chroot_list ,把刚刚新建的用户添加到此配置中,保存退出

getsebool -a | grep ftp    #查看状态
vim /etc/selinux/config,修改为 SELINUX = disabled 保存退出
sudo setsebool -P ftp_home_dir 1        这个和上面修改/etc/selinux/config是同样效果


systemctl enable vsftpd.service        #设置开机启动
systemctl restart vsftpd.service
sudo systemctl stop vsftpd.service
sudo systemctl status vsftpd.service
sudo systemctl start vsftpd.service
sudo systemctl restart vsftpd.service

备份vsftpd.conf
sudo mv vsftpd.conf vsftpd.conf.bak
sudo wget http://learning.happymmall.com/vsftpdconfig/vsftpd.conf

说明
/etc/vsftpd/vsftpd.conf 是核心配置文件。
/etc/vsftpd/ftpusers 
/etc/vsftpd/user_list 黑名单白名单都可以

vim /etc/vsftpd/vsftpd.conf

#(当本地用户登入时,将被更换到定义的目录下,默认值为各用户的家目录) 
local_root=/ftpfile
#(使用匿名登入时,所登入的目录) 
anon_root=/ftpfile (匿名访问已经禁止,这个可以注释掉)
#(默认是GMT时间,改成使用本机系统时间)
use_localtime=YES
#(不允许匿名用户登录)
anonymous_enable=NO
#(允许本地用户登录)
local_enable=YES
#(本地用户可以在自己家目录中进行读写操作)
write_enable=YES
#(本地用户新增档案时的umask值)
local_umask=022
#(如果启动这个选项,那么使用者第一次进入一个目录时,会检查该目录下是否有.message这个档案,如果有,则会出现此档案的内容,通常这个档案会放置欢迎话语,或是对该目录的说明。默认值为开启)
dirmessage_enable=YES
#(是否启用上传/下载日志记录。如果启用,则上传与下载的信息将被完整纪录在xferlog_file 所定义的档案中。预设为开启。)
xferlog_enable=YES
#(指定FTP使用20端口进行数据传输,默认值为YES)
connect_from_port_20=YES
#(如果启用,则日志文件将会写成xferlog的标准格式)
xferlog_std_format=YES
#(这里用来定义欢迎话语的字符串)
ftpd_banner=Welcome to mmall FTP Server
#(用于指定用户列表文件中的用户是否允许切换到上级目录)
chroot_local_user=NO
#(设置是否启用chroot_list_file配置项指定的用户列表文件)
chroot_list_enable=YES
#(用于指定用户列表文件)
chroot_list_file=/etc/vsftpd/chroot_list
#(设置vsftpd服务器是否以standalone模式运行,以standalone模式运行是一种较好的方式,此时listen必须设置为YES,此为默认值。建议不要更改,有很多与服务器运行相关的配置命令,需要在此模式下才有效,若设置为NO,则vsftpd不是以独立的服务运行,要受到xinetd服务的管控,功能上会受到限制)
listen=YES
#(虚拟用户使用PAM认证方式,这里是设置PAM使用的名称,默认即可,与/etc/pam.d/vsftpd对应) userlist_enable=YES(是否启用vsftpd.user_list文件,黑名单,白名单都可以
pam_service_name=vsftpd
#(被动模式使用端口范围最小值)
pasv_min_port=61001
#(被动模式使用端口范围最大值)
pasv_max_port=62000
#(pasv_enable=YES/NO(YES)
pasv_enable=YES
#允许用户有写的权限
allow_writeable_chroot=YES

安装 ftp 命令,yum install ftp -y

[root@FantJ vsftpd]# ftp 127.0.0.1
Connected to 127.0.0.1 (127.0.0.1).
220 Welcome to FTP Server
Name (127.0.0.1:root): ftpuser
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (127,0,0,1,239,251).
150 Here comes the directory listing.
drwxrwxrwx    2 1002     1002         4096 Apr 27 20:47 image
226 Directory send OK.
ftp> exit
221 Goodbye.

如何创建一个https的站点
https://bbs.aliyun.com/read/303413.html?spm=5176.100241.0.0.zGHlIG

https://help.aliyun.com/knowledge_detail/42863.html?spm=5176.11065259.1996646101.searchclickresult.553344b2plSeQN

你可能感兴趣的:(【JAVA】nginx+vsftp搭建图片服务器)