最近在学习淘淘商城,第一次部署nginx和vsftp真的是饶了好多的弯路,现在已经部署了3次了,写个博客整理一下
CentOS7.0下nginx的安装与配置
系统:CentOS 7.0 x64
nginx版本:nginx-1.9.9
安装方式:源码编译安装
1.安装必须环境
nginx的编译需要c++,同时prce(重定向支持)和openssl(https支持)也需要安装。
[root@localhost ~]# yum install gcc-c++
[root@localhost ~]# yum -y install pcre*
[root@localhost ~]# yum -y install openssl*
2.下载nginx-1.9.9.tar.gz,可放在 /usr/local/ 目录下
[root@localhost ~]# cd /usr/local/
[root@localhost local]# wget http://nginx.org/download/nginx-1.9.9.tar.gz
3.解压及编译
[root@localhost local]# tar -zxvf nginx-1.9.9.tar.gz
进入nginx目录
[root@localhost local]# cd nginx-1.9.9
首先,设置安装目录为 /usr/local/nginx,大家也可以自己创建个目录来放,便于以后查找
[root@localhost nginx-1.9.9]# ./configure --prefix=/usr/local/nginx
如果没有报错,开始编译安装
[root@localhost nginx-1.9.9]# make
[root@localhost nginx-1.9.9]# make install
4.防火墙
端口打开80
//开放端口命令
firewall-cmd --zone=public --add-port=80/tcp --permanent
//执行完上面的命令后需要重新加载防火墙
firewall-cmd --reload
也可将防火墙临时关闭
systemctl stop firewalld.service
5.启动nginx服务
进入安装目录 /usr/local/nginx
[root@localhost ~]# cd /usr/local/nginx
[root@localhost sbin]# ./nginx
查看进程,可以看到nginx的master和worker进程
[root@localhost sbin]# ps -ef | grep nginx
root 32150 1 0 13:28 ? 00:00:00 nginx: master process ./nginx
nobody 32151 32150 0 13:28 ? 00:00:00 nginx: worker process
root 32154 28494 0 13:28 pts/1 00:00:00 grep nginx
可以通过访问ip:80测试,看到页面这样的提示就说明安装成功
重启的命令(暂时不需要用上):
[root@root sbin]# ./nginx -s reload
6.设置nginx开机自启
[root@localhost nginx]# cd /
[root@localhost /]# vim /etc/rc.local
CentOS7.0下安装FTP服务的方法
1.运行下面的命令就可以完成vsftpd的安装
[root@localhost /]# yum -y install vsftpd
安装完成再次利用上面的rpm命令检查一下是否完成安装,如果完成安装,那就可以继续。
2.开启vsftpd服务
[root@localhost /]# systemctl start vsftpd.service
3.检查vsftpd服务
[root@localhost /]# service vsftpd status
4.ftp服务使用的是21端口,有时候也使用20端口。21控制连接,20数据连接。一般来说,20,21,22,443,80 这几个端口都应该放行。
firewall-cmd --zone=public --add-port=21/tcp --permanent
命令都是重复的我就不一一打上去了,如果你上面选择了临时关闭防火墙,那么就略过上面的操作
还要安装ftp客户端,否则ftp命令无法使用
rpm -Uvh http://mirror.centos.org/centos/6/os/x86_64/Packages/ftp-0.17-54.el6.x86_64.rpm
补充更新:如果执行上面命令后提示以下错误信息:
代码如下:
libc.so.6 is needed by ftp-0.17-35.el5.i386
则可以通过命令安装依赖包glibc
代码如下:
rpm –Uvh http://mirror.centos.org/centos/6/os/x86_64/Packages/glibc-2.12-1.132.el6.x86_64.rpm
5.添加一个ftp用户
此用户就是用来登录ftp服务器用的。
[root@localhost ~]# useradd ftpuser
这样一个用户建完,可以用这个登录,记得用普通登录不要用匿名了。登录后默认的路径为 /home/ftpuser.
6.给ftp用户添加密码
[root@localhost ~]# passwd ftpuser
输入两次密码后修改密码。
6.登录ftp测试一下
[root@localhost /]# ftp localhost
输入刚刚的用户名ftpuser和密码123456,然后输入退出命令bye
7.修改selinux
外网是可以访问上去了,可是发现没法返回目录(使用ftp的主动模式,被动模式还是无法访问),也上传不了,因为selinux作怪了。
修改selinux:
执行以下命令查看状态:
[root@localhost /]# getsebool -a | grep ftp
ftpd_anon_write --> off
ftpd_connect_all_unreserved --> off
ftpd_connect_db --> off
ftpd_full_access --> off
ftpd_use_cifs --> off
ftpd_use_fusefs --> off
ftpd_use_nfs --> off
ftpd_use_passive_mode --> off
httpd_can_connect_ftp --> off
httpd_enable_ftp_server --> off
tftp_anon_write --> off
tftp_home_dir --> off
执行上面命令,再返回的结果看到两行都是off,代表,没有开启外网的访问
执行如下命令
[root@localhost ~]# setsebool -P allow_ftpd_full_access on
[root@localhost ~]# setsebool -P tftp_home_dir on
8.关闭匿名访问
修改/etc/vsftpd/vsftpd.conf文件:
[root@localhost /]# vim /etc/vsftpd/vsftpd.conf
9.开启被动模式
还是上面的文件,在最后加上
pasv_min_port=30000
pasv_max_port=30999
表示端口范围为30000~30999,这个可以随意改。
10.设置ftp的默认路径
还是上面的文件,在最后加上
local_root=/home/ftpuser/
都加完后wq保存退出
重启ftp服务
[root@localhost /]# systemctl restart vsftpd.service
11.设置开机启动vsftpd ftp服务
[root@localhost ~]# chkconfig vsftpd on
ftp也部署好了,下面下载FileXilla安装来连接试试吧
弄完之后用nginx访问可能会404,还需要下面操作
①需要在nginx/www下创建一个images文件夹(实际访问的不是这个路径)
mkdir /usr/local/nginx/www/images
②修改/usr/local/nginx/conf/nginx.conf在默认的server里再添加一个location并指定实际路径:
location /images/ {
root /home/ftpuser/www/;
autoindex on;
}