专栏首页程序猿的大杂烩Nginx用户认证与域名重定向

Nginx用户认证与域名重定向

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;  //用户名和密码文件的路径
     }
}

创建test.com目录:

mkdir /data/wwwroot/test.com

创建一个索引页文件:

echo "test.com" > /data/wwwroot/test.com/index.html

安装httpd:

yum install -y httpd

然后使用httpd里的htpasswd 命令去生成一个用户密码文件:

htpasswd -c /usr/local/nginx/conf/htpasswd user1

生成完成后cat一下htpasswd 文件可以看到如下内容:

如果再次添加用户的话就不需要加上-c选项了,加上-c选项会覆盖原来的htpasswd 文件。

生成完用户密码文件之后,就重新加载配置文件:

/usr/local/nginx/sbin/nginx -t /usr/local/nginx/sbin/nginx -s reload

使用curl命令测试一下是否配置成功,状态码为401代表成功:

然后使用-u指定用户名和密码去访问,状态码为200代表成功:

以上我们配置的是整个站点的用户认证,但是如果不需要整个站点都要用户认证,只有单独的某个站点下的目录需要进行用户认证,那么如何配置? 示例: 例如我要指定对admin目录进行用户认证,修改虚拟主机配置文件如以下内容即可:

现在访问test.com就不会需要进行用户认证了,可以看到状态码为200:

但是访问test.com下的admin目录就会需要进行用户认证了,可以看到状态码为401:

这时候就需要指定用户名和密码才能访问这个目录了。

<br> 除了控制目录外,还可以控制目录下的文件,例如我要控制访问admin.php文件时需要进行用户认证,修改虚拟主机配置文件如以下内容:

~ 表示根,表示整个站点

这时候使用curl访问admin目录下的admin.php文件时就需要进行用户认证了,可以看到状态码为401:

<br>

12.9 Nginx域名重定向


修改配置文件为以下内容:

server
{
    listen 80;
    server_name test.com test1.com test2.com;
    index index.html index.htm index.php;
    root /data/wwwroot/test.com;
    if ($host != 'test.com' ) {
        rewrite  ^/(.*)$  http://test.com/$1  permanent;
    }
}

重新加载配置文件:

使用curl访问test2.com,状态码为301,并且重定向的目标域名是test.com就代表成功了:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 安装Python解释器与安装Pycharm开发工具

    点击Download中的windows进入到以下界面,选择3.6或2.7版本,我下的是3.6版本:

    端碗吹水
  • SpringMVC返回数据到视图

    在SpringMVC中有一个ModelAndView对象,如其名,Model代表模型,View代表视图,这个名字就很好地解释了该类的作用——它用来存储模型数据以...

    端碗吹水
  • Maven介绍与安装配置

    Maven是项目对象模型(POM),是一个项目模块管理工具。能很好的管理模块化开发、模块jar包的分享,并且可以自动下载工程所需要的依赖包。

    端碗吹水
  • 如何在Debian 8上设置Apache虚拟主机

    Apache Web服务器是在互联网上提供Web内容的最流行方式。它占互联网上所有活跃网站的一半以上,并且非常强大和灵活。

    独钓寒江雪_Ly
  • 没错,用三方 Github 做授权登录就是这么简单!(OAuth2.0实战)

    上一篇《OAuth2.0 的四种授权方式》文末说过,后续要来一波OAuth2.0实战,耽误了几天今儿终于补上了。

    程序员内点事
  • 没错,用三方 Github 做授权登录就是这么简单!(OAuth2.0实战)

    上一篇《OAuth2.0 的四种授权方式》文末说过,后续要来一波OAuth2.0实战,耽误了几天今儿终于补上了。

    程序员内点事
  • 手把手教你从零开始搭建SpringBoot后端项目框架

    打开IDE,点击File -> New Project。在左侧的列表中的选择Maven项目,点击Next。

    SH的全栈笔记
  • Jmeter(二十八) - 从入门到精通 - Jmeter Http协议录制脚本工具-Badboy1(详解教程)

      在使用jmeter自动录制脚本时会产生很多无用的请求,所以推荐使用badboy录制脚本之后保存为jmx文件,在jmeter中打开使用。因此宏哥在这里介绍一...

    北京-宏哥
  • Jmeter(二十八) - 从入门到精通 - Jmeter Http协议录制脚本工具-Badboy1(详解教程)

    在使用jmeter自动录制脚本时会产生很多无用的请求,所以推荐使用badboy录制脚本之后保存为jmx文件,在jmeter中打开使用。因此宏哥在这里介绍一下Ba...

    北京-宏哥
  • MyBatis —— 主配置文件中的常见标签使用

    在下面的例子中,由于sql中的字段与bean的属性不对应,导致查询结果中的返回值为null。

    桑鱼

扫码关注云+社区

领取腾讯云代金券