2018.3.13 12周2次课

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2018.3.13 12周2次课相关的知识,希望对你有一定的参考价值。

十二周二次课(3月13日)

12.6 nginx安装

12.7 默认虚拟主机

12.8 Nginx用户认证

12.9 Nginx域名重定向

12.6 Nginx安装

  • 下载和解压:

cd /usr/local/src

wget http://nginx.org/download/nginx-1.13.9.tar.gz

tar -zxvf nginx-1.13.9.tar.gz

  • 配置编译选项

cd nginx-1.13.9

./configure --prefix=/usr/local/nginx

  • 编译和安装

make &&  make install

技术分享图片

技术分享图片

  • 创建配置文件和启动脚本

vim /etc/init.d/nginx

chmod 755 /etc/init.d/nginx

技术分享图片

chkconfig --add nginx

chkconfig nginx on

  • 更改配置文件

cd /usr/local/nginx/conf

mv nginx.conf nginx.conf.1 //不用系统自带的,我们自己建立以新的。也可以清空原来的配置文件,用命令:>/usr/local/nginx/conf/nginx.conf

vim nginx.conf

技术分享图片

  • 启动

service nginx start

技术分享图片

  • 测试

curl localhost

技术分享图片

能访问到时因为在配置文件 nginx.conf里默认主机页里,设置了如下的设置

技术分享图片

技术分享图片

技术分享图片

  • 测试php解析

我们在配置文件里也配置了解析php:

技术分享图片

vi /usr/local/nginx/html/1.php //加入如下内容

<?php

echo "This is nginx test page.";

?>

技术分享图片

技术分享图片

12.7 默认虚拟主机

在nginx中也又默认虚拟主机,跟httpd类似,第一个被nginx加载的虚拟主机就是默认主机。但和httpd不相同的地方时,它还有一个配置用来标记默认虚拟主机。也就是说,如果没有这个标记,第一个虚拟主机为默认虚拟主机。

修改主配置文件:vim /usr/local/nginx/conf/nginx.conf //注释掉server。在结束符号 } 上面增加一行:include vhost/*.conf; 。

这样/usr/local/nginx/conf/vhost/下面所有以.conf结尾的文件都会加载。我们就可以包所有虚拟主机配置文件放到vhost目录下面

技术分享图片

vhost目录在conf目录下,如果没有就创建一个,

技术分享图片

vim aaa.com.conf //编辑虚拟主机aaa.com配置文件

server

{

   listen 80 default_server; // 有这个标记的就是默认虚拟主机

   server_name aaa.com; //主机名

   index index.html index.htm index.php; //指定索引页

   root /data/wwwroot/default; //网址的路径

}

测试:

mkdir -p /data/wwwroot/default/ //创建default目录

echo “This is a default site.”>/data/wwwroot/default/index.html //定义index.html

/usr/local/nginx/sbin/nginx –t //检查语法错误

技术分享图片

/usr/local/nginx/sbin/nginx -s reload //重新加载服务,好处是当配置文件里有错误时是不会生效的

技术分享图片

12.8 Nginx用户认证

  • 访问网站时需要认证:

创建一个虚拟主机:vim /usr/local/nginx/conf/vhost/test.com.conf //写入如下内容

server

{

   listen 80;

   server_name test.com;

   index index.html index.htm index.php;

   root /data/wwwroot/test.com;

   

location  / // 根:/ 指的就是全站

   {

       auth_basic              "Auth"; //定义用户认证的名字

       auth_basic_user_file   /usr/local/nginx/conf/htpasswd; //用户名密码文件所在位置

}

}

要用到apache的htpasswd文件来创建用户名密码文件

/usr/local/apache2.4/bin/htpasswd -c /usr/local/nginx/conf/htpasswd aming

技术分享图片

创建第二个:/usr/local/apache2.4/bin/htpasswd /usr/local/nginx/conf/htpasswd user1

技术分享图片

-t && -s reload //测试配置并重新加载

技术分享图片

测试:

curl -x127.0.0.1:80 test.com -I //状态码为401,说明访问的内容需要用户认证

技术分享图片

技术分享图片

curl -x127.0.0.1:80 -uaming:123456 test.com //状态码404,因为没有创建index.html

技术分享图片

技术分享图片

创建目录:mkdir /data/wwwroot/test.com

创建index.html:echo “test.com”>/data/wwwroot/test.com/index.html

技术分享图片

  • 访问目录时需要认证:目录名admin

vim /usr/local/nginx/conf/vhost/test.com.conf //编辑test.com.conf

server

{

   listen 80;

   server_name test.com;

   index index.html index.htm index.php;

   root /data/wwwroot/test.com;

   location  /admin/ //更改目录名字为admin

   {

       auth_basic              "Auth";

       auth_basic_user_file   /usr/local/nginx/conf/htpasswd;

   }

}

技术分享图片

访问网站时,不需要指定用户名和密码

技术分享图片

访问admin目录时,需要用户名和密码

技术分享图片

创建admin目录:mkdir /data/wwwroot/test.com/admin

创建admin目录下的index.htm:echo “test.com admin dir”>/data/wwwroot/test.com/admin/index.html

技术分享图片

  • 访问文件时需要认证:文件名admin,php

vim /usr/local/nginx/conf/vhost/test.com.conf //编辑test.com.conf

server

{

   listen 80;

   server_name test.com;

   index index.html index.htm index.php;

   root /data/wwwroot/test.com;

   location  ~ admin.php //~:匹配,匹配admin.php

   {

       auth_basic              "Auth";

       auth_basic_user_file   /usr/local/nginx/conf/htpasswd;

   }

}

技术分享图片

访问目录时,不需要指定用户名和密码

技术分享图片

访问文件时,需要指定用户名和密码

技术分享图片

12.9 Nginx域名重定向

Nginx的域名重定向和httpd的类似

更改配置文件:vim /usr/local/nginx/conf/vhost/test.com.conf

server

{

   listen 80;

   server_name test.com test1.com test2.com; // server_name后面支持写多个域名。httpd:ServerName后面只有1个域名,ServerAlias后面跟多个域名,

   index index.html index.htm index.php;

   root /data/wwwroot/test.com;

   if ($host != 'test.com' ) {

       rewrite  ^/(.*)$  http://test.com/$1  permanent; permanent为永久重定向,状态码为301,如果写redirect则为302

   }

}

技术分享图片

测试:

查看状态码:301,

重定向到(最后一行):

技术分享图片

技术分享图片


以上是关于2018.3.13 12周2次课的主要内容,如果未能解决你的问题,请参考以下文章

2018.4.12 16周2次课

2017-12-12 1周2次课

2017.12.20 2周3次课

2017.12.22 2周5次课

2017-12-19 2周2次课

2017.12.19 2周2次课