总结一下最近一段时间的用阿里云轻量服务器搭建nginx+ftp踩过的坑。
我这里用的系统是centos7.3。
nginx的安装搭建
1.安装环境
1.gcc环境安装: yum install gcc-c++
2.pcre库安装(解析正则表达式): yum install -y pcre pcre-devel
3.zlib 库安装(压缩和解压缩): yum install -y zlib zlib-devel
4.openssl库(支持https):yum install -y openssl openssl-devel
2.编译安装nginx
我这里用的是nginx-1.8.0.tar.gz
1.下载nginx压缩包: wget http://nginx.org/download/nginx-1.8.0.tar.gz
2. 解压: tar -zxvf nginx-1.8.0.tar.gz
3.进入nginx-1.8.0目录: cd nginx-1.8.0
4.参数设置(创建makefile文件): 直接命令行粘贴一下命令
./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
5.编译安装
make
make install
3.启动nginx
cd /usr/local/nginx/sbin/
在此目录下启动: ./nginx
其他命令: 停止命令: ./nginx -s stop
重启命令: ./nginx -s restart
重新加载配置文件: ./nginx -s reload
注意:启动时报错未找到/var/temp/nginx
直接创建一个就好 mkdir -p /var/temp/nginx
到此nginx就搭建完成了,可以在浏览器上试试http://加上你的服务器ip.
ftp安装搭建
1,安装ftp,安装完后有/ etc/vsftpd/vsftpd.conf文件,是vsftpd的配置文件
yum -y install vsftpd
2,添加一个用户 useradd ftpuser
这样一个用户建完,可以用这个登录,记得用普通登录不要用匿名了。登录后默认的路径为 /home/ftpuser.
3,给该用户添加密码 passwd ftpuser
输入两次密码后修改密码。
4. 配置防火墙,开启端口(centos7中默认使用的是firewall防火墙)
开启21端口 firewall-cmd --zone=public --add-port=21/tcp --permanent
ftp服务 firewall-cmd --zone=public --add-service=ftp --permanent ( --permanent使设置永久生效)
重启防火墙 systemctl restart firewalld
由于阿里云的轻量应用服务器默认是关闭selinux的,我就不详述设置方式了,建议查看服务器是否开启selinux,若开启了自行查找设置方法。
5.设置被动模式,关闭匿名访问
修改/etc/vsftpd/vsftpd.conf配置文件
设置anonymous_enable = NO 关闭匿名访问了
另外在文件末尾加上
pasv_min_port=30000
pasv_max_port=30999
保存修改,重启vsftpd即可
6. 防火墙开启被动模式的端口
fire-cmd --zone=public --add-port=30000-30999/tcp --permanent
重启防火墙
到这ftp 也搭好了。以上的安装及搭建过程网上到处都有,接下来得是重点。本人小白,踩N多天的坑,一把鼻涕一把泪的踩完了。
云服务器防火墙的配置
阿里云的轻量应用服务器控制台左侧有个防火墙,把ftp,http,HTTPS,还有全部的tcp全部添加。
远程连接FTP,能连接上,但是访问不了文件。
这里是访问权限的问题,把/home下你创建的用户对应的文件夹的文件权限打开。
比如我的ftpuser , chmod a+w /home/ftpuser
远程访问ftp中的资源,出现404错误
这里需要更改nginx.conf配置文件,路径为/usr/local/nginx/conf/nginx.conf
将第一行的注释取消,改为 user root;
远程访问ftp中的资源,出现403错误
这里仍然是文件的访问权限问题,/home/ftpuser下的要访问的文件夹开启权限
chmod a+w /home/ftpuser/(文件名)
本次搭建图片服务器遇到的坑也就这么多了,伤心流泪之余,也学到了不少。小小总结,希望能帮助到跟我一样的小白。