十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向

12.6 Nginx安装

十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向

十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向

1.cd到十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向目录,然后下载nginx安装包

2.解压之后cd到解压好的目录里面去。十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向

3.然后我们来编译,十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向(这里我们没有加什么参数,但是如果有需要就可以在这一步加上参数)

然后十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向

4.然后我们可以看一下它的目录,十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向

conf是它的配置文件目录,html是样例文件目录,logs日志目录,sbin是它的进程文件也是核心文件,

-t查看配置文件是否有错,十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向

5.然后我们给这个nginx创建配置文件,还要做一个启动脚本,十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向,文件内容将https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D15Z/etc_init.d_nginx里的代码粘贴进去即可,

6.更改目录权限,然后把它加入到系统服务中去,设置开机启动十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向

7.然后去配置它的配置文件,因为十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向里已经有了,但是我们不用它,所以给它改一下名字:十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向,然后十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向,之后去https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D15Z/nginx.conf里面拷贝,然后我们需要编辑如下位置,(这里其实就相当于默认虚拟主机)

十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向

第二行是域名,第四行是网站根目录,第五行是配置解析php的部分。

nginx是通过十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向这一行调用php-fpm服务的,指定hp-fpm服务的监听端口或sock。

如果我们监听的是127.0.0.1的9000端口那么我们就写十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向,这里我们用的是sock所以不用改。

然后我们使用-t检查一下错误,就可以启动了十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向,启动好之后我们可以看一下有没有它的进程。我们可以从进程中看出它的父进程的权限是root,子进程是php-fpm。

然后我们还可以使用十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向测试与一下,如下就是nginx的欢迎界面。

十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向

然后我们来测试一下php

十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向

在里面添加十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向然后十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向出现如下内容就成功了

十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向

12.7 默认虚拟主机

十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向

刚刚我们提到了nginx的默认虚拟主机配置文件,当然除了这个之外其实还有个专门用来定义默认虚拟主机配置文件的配置段,

1.我们先来做一个操作,我们首先改一下十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向,把如下一段删掉

十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向

2.然后加上在这个位置加上十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向并保存退出(这一步是指定默认虚拟主机目录),然后在十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向创建vhost目录,然后在这个目录里创建十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向文件,在里面添加如下行,

十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向

第一行是监听80端口,后面带有十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向就代表他是默认虚拟主机,index指定它的索引页,root指定网站目录。

然后我们就需要在创建这个目录十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向然后我们进去写一些东西,十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向在里面添加如下内容

十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向

然后我们检测一下有没有错,十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向如果我们aaa.com.conf里面写错的话就会提示。

十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向

然后我们使用十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向重新加载一下(改了文件之后都要重新加载一下才能生效)

然后我们来测试一下,如下图,原来是欢迎页,现在变成如下内容

十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向

我们指定域名和端口,然后访问其他域名结果也是一样。(这就是默认虚拟主机的效果)

十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向

12.8 Nginx用户认证

十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向

和apache一样都需要定义用户和密码文件。

1.创建虚拟主机十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向添加如下内容

十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向

auth开头的两行就是用户认证相关的配置啦。第一行定义用户认证的名字,第二行是他的用户名密码文件。

2.这里用到apache的密码生成工具,如果你安装过的话直接运行十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向(指定密码文件路径和用户名),没有安装过就安装一下十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向。然后我们设置它的密码输入两次。然后我们可以看一下十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向文件就会发现里面多了一行,如果要继续添加用户和密码就不需要加-c了,不然就会重置。(-c是生成文件的意思,它会覆盖原来的文件)

3.然后我们使用-t查看一下有没有错误十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向,然后重新加载十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向(reload重新加载的好处是如果你的配置文件有错误的时候它不会把原来的正确的停掉)

4.然后我们来测试十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向如下图会提示401,

十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向

401就是说它需要用户和密码认证,那么我们就来指定,使用十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向指定用户名和密码

然后它会提示404,因为它去访问test.com里的index.html了,但是我们还没有创建,test.com主目录都还没有创建,下面我们来创建一下。

十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向

然后再来访问就正常了。

十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向

这就是用户认证,当然这个是针对真个站点的。我们也可以设置只针对一个目录。

只需要把改下十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向这个文件内容即可,如下图位置改成你想要加用户认证的目录

十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向

然后重新加载一下十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向

之后访问test.com就不需要认证了,但是test.com/admin目录就需要了

十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向

当然我们也可以针对php文件

十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向

12.9 Nginx域名重定向

十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向

1.改一下配置文件十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向,增加如下域名,和重定向规则,然后我们可以把下面用户认证部分删掉。

十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向permanent是301永久重定向的意思。

然后-t检查错误,然后重新加载一下十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向

我们来测试一下,如下图是301,重定向到了十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向

十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向

十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向

改成test4就是404它会去访问默认虚拟主机

十二周二次课 2018.01.03 Nginx安装、默认虚拟主机、Nginx用户认证、Nginx域名重定向