这几天因为需要部署静态资源服务器,所以就找了个vps部署一下Nginx,顺带将vsftpd配置好了,下面就给大家讲一下如何在CentOS上部署Nginx及vsftpd!
如果大家不知道Nginx和vsftpd的用处,请自行百度,这里就不过多介绍,废话少说,进入正题。
¶一、在CentOS上下载Nginx和vsftpd
常用的Nginx下载方式有两种,一种是使用CentOS上自带的yum下载,第二种是从网上下载后在通过make进行编译安装,下面我将会向大家介绍一下这两种安装方式
¶1、yum安装方式
首先我们更新一下yum软件库
1 | yum update |
然后我们搜索一下yum库关于nginx的rpm包
1 | yum list | grep nginx |
可以看到下面的列表
1 | [root@VM_239_130_centos html]# yum list | grep nginx |
接下来我们选择使用yum安装nginx.x86_64 1.10.2-1.el6 epel
1 | yum install nginx |
中间会提示我们一次是否确认安装
1 | ======================================================================================================================= |
输入y继续
1 | Installed: |
安装完毕!!接下来我们来看一下nginx的文件分布
1 | whereis nginx |
1 | [root@VM_239_130_centos html]# whereis nginx |
其中三个文件(夹)比较重要:
| 路径 | 作用 |
|---|---|
| /usr/sbin/nginx | nginx启动路径 |
| /etc/nginx | 存放nginx的配置文件 |
| /usr/share/nginx | 默认的nginx资源库 |
我们首先进入/etc/nginx/中看一下nginx到底有哪些配置文件
1 | [root@VM_239_130_centos html]# cd /etc/nginx |
哇,看到这么多配置文件是不是吓了一跳,其实我们只需要在意nginx.conf就行了,其他的涉及到了再百度,接下来我们进入nginx.conf(这里我们使用vim,系统没有vim的小伙伴可以使用yum install vim进行下载安装)
1 | vim nginx.conf |
1 | http { |
上面的配置不要动,我们跟踪到这一行include /etc/nginx/conf.d/*.conf主要作用就是加载更多的配置文件,我们退出vim编辑ESC+:q进入到conf.d文件夹来看一下
1 | [root@VM_239_130_centos nginx]# cd /etc/nginx/conf.d |
然后进入default.conf
1 | vim default.conf |
1 | # |
我们发现这个文件配置的是server{},server的配置就是我们nginx的核心配置,这里先不过多的讲,下面会详细介绍server的配置,但是此时如果我们运行nginx的话将会报错
1 | Address family not supported by protocol |
我们需要将上面的
1 | listen [::]:80 default_server; |
注释掉
1 | # listen [::]:80 default_server; |
退出vim编辑,使用/usr/sbin/nginx启动nginx
1 | [root@VM_239_130_centos conf.d]# /usr/sbin/nginx |
关闭nginx
1 | pkill -9 nginx |
¶2、编译安装
这里借鉴了腾讯云论坛上的一个帖子: CentOS 7中Nginx1.9.5编译安装教程systemctl启动
先安装gcc 等
1 | yum -y install gcc gcc-c++ wget |
.然后装一些库
1 | yum -y install gcc wget automake autoconf libtool libxml2-devel libxslt-devel perl-devel perl-ExtUtils-Embed pcre-devel openssl-devel |
进入默认的软件目录
1 | cd /usr/local/src/ |
下载 nginx软件
1 | wget http://nginx.org/download/nginx-1.9.5.tar.gz |
如果这个下载太慢可以在这里下载http://nginx.org/download/nginx-1.9.5.tar.gz 下载完后yum -y intall lrzsz 装好上传工具
然后用rz上传到服务器 然后解压文件.
1 | tar zxvf nginx-1.9.5.tar.gz |
进入 nginx1.9.5的源码 如果想改版本号 可以进入源码目录src/core/nginx.h更改
1 | cd nginx-1.9.5/ |
创建一个nginx目录用来存放运行的临时文件夹
1 | mkdir -p /var/cache/nginx |
开始configure
1 | ./configure \ |
接着 编译
1 | make |
安装
1 | make install |
启动nginx
1 | /usr/sbin/nginx |
用ps aux来查看nginx是否启动
1 | ps aux|grep nginx |
复制代码
然后配置服务
1 | vim /usr/lib/systemd/system/nginx.service |
按i输入以下内容
1 | [Unit] |
编辑好后保存然后开启开机启动
1 | systemctl enable nginx.service |
用命令关掉nginx
1 | pkill -9 nginx |
后面可以用systemctl来操作nginx.service
1 | systemctl start nginx.service |
这里值得一提的是nginx编译安装后的文件夹和yum安装的文件夹类似,nginx.conf文件都在/etc/nginx下,不过编译安装后的nginx.conf文件内部配置与yum安装略有差异
编译安装后的nginx.conf内部直接配置server,所以编译安装的小伙伴配置server就不用去改/etc/nginx/conf.d下的default.conf文件配置了,直接到nginx.conf文件中改server配置就行了
¶二、Nginx配置详解
1、全局块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。
2、events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。
3、http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。
4、server块:配置虚拟主机的相关参数,一个http中可以有多个server。
5、location块:配置请求的路由,以及各种页面的处理情况。
我们来到yum安装后的/etc/nginx/conf.d/default.conf文件中
1 | server { |
在server块中
| 名称 | 作用 |
|---|---|
| listen | nginx监听端口 |
| root | nginx资源路径根目录 |
| location | url访问的本地资源路径配置(支持通配符) |
| error_page | 跳转报错页面 |
其中nginx会在资源目录中去找默认的index.html页面,我们进入/usr/share/nginx/html中看一下
1 | [root@VM_239_130_centos conf.d]# cd /usr/share/nginx/html |
我们在这个文件夹中创建一个test.html
1 | [root@VM_239_130_centos html]# touch test.html |
html页面内容
1 | <html> |
然后我们在浏览器上去访问test.html
成功~
然后我们修改一下default.conf的配置,增加一个location
1 | [root@VM_239_130_centos html]# vim /etc/nginx/conf.d/default.conf |
1 | # |
保存退出然后关闭nginx后重新运行
1 | [root@VM_239_130_centos html]# pkill -9 nginx |
然后我们访问test/test.html

不料却报错了,找不到网页,这是因为我们新添加了一个location资源路径的配置,他会自动找到root,然后在去找root下面是否有test这个文件夹,有的话就去test文件夹中去找我们访问的test.html,可想而知,我们并没有建立test文件夹
回到 /usr/share/nginx/html,然后建立test文件夹,将test.html移动到test文件夹中
1 | [root@VM_239_130_centos html]# mkdir test |
这里要注意一下,我增加的location配置是这样的
1 | location /test{ |
如果这个root配置不注释的话将会覆盖server块下的root路径哦,到这里nginx基本配置应该就写完了,大家可以去亲自试一试~