前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Nginx用户认证与域名重定向

Nginx用户认证与域名重定向

作者头像
端碗吹水
发布2020-09-23 11:43:37
3.3K0
发布2020-09-23 11:43:37
举报

12.8 Nginx用户认证


Nginx用户认证与域名重定向
Nginx用户认证与域名重定向
Nginx用户认证与域名重定向
Nginx用户认证与域名重定向

创建虚拟主机配置文件:

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

文件内容如下:

代码语言:javascript
复制
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;  //用户名和密码文件的路径
     }
}
Nginx用户认证与域名重定向
Nginx用户认证与域名重定向

创建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 文件可以看到如下内容:

Nginx用户认证与域名重定向
Nginx用户认证与域名重定向

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

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

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

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

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

Nginx用户认证与域名重定向
Nginx用户认证与域名重定向

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

Nginx用户认证与域名重定向
Nginx用户认证与域名重定向

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

Nginx用户认证与域名重定向
Nginx用户认证与域名重定向

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

Nginx用户认证与域名重定向
Nginx用户认证与域名重定向

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

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

Nginx用户认证与域名重定向
Nginx用户认证与域名重定向

~ 表示根,表示整个站点

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

Nginx用户认证与域名重定向
Nginx用户认证与域名重定向

<br>

12.9 Nginx域名重定向


Nginx用户认证与域名重定向
Nginx用户认证与域名重定向

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

代码语言:javascript
复制
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;
    }
}
Nginx用户认证与域名重定向
Nginx用户认证与域名重定向

重新加载配置文件:

Nginx用户认证与域名重定向
Nginx用户认证与域名重定向

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

Nginx用户认证与域名重定向
Nginx用户认证与域名重定向
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-12-02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 12.8 Nginx用户认证
    • 12.9 Nginx域名重定向
    相关产品与服务
    命令行工具
    腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档