Nginx用户认证与域名重定向

简介:

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

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用户认证与域名重定向

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

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

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

使用curl命令测试一下是否配置成功,状态码为401代表成功:
Nginx用户认证与域名重定向

然后使用-u指定用户名和密码去访问,状态码为200代表成功:
Nginx用户认证与域名重定向

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

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

但是访问test.com下的admin目录就会需要进行用户认证了,可以看到状态码为401:
Nginx用户认证与域名重定向
这时候就需要指定用户名和密码才能访问这个目录了。

<br>
除了控制目录外,还可以控制目录下的文件,例如我要控制访问admin.php文件时需要进行用户认证,修改虚拟主机配置文件如以下内容:
Nginx用户认证与域名重定向
~ 表示根,表示整个站点

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

<br>

12.9 Nginx域名重定向


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;
    }
}

Nginx用户认证与域名重定向

重新加载配置文件:
Nginx用户认证与域名重定向

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

<br>



本文转自 ZeroOne01 51CTO博客,原文链接:http://blog.51cto.com/zero01/2046823,如需转载请自行联系原作者

相关实践学习
基于函数计算快速搭建Hexo博客系统
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
相关文章
|
1月前
|
应用服务中间件 nginx
Nginx中如何配置中文域名?
Nginx中如何配置中文域名?
43 0
|
5月前
|
域名解析 缓存 网络协议
Nginx系列教程(01) - DNS域名解析过程
Nginx系列教程(01) - DNS域名解析过程
333 0
|
5天前
|
域名解析 缓存 负载均衡
Nginx正向代理域名的配置
Nginx正向代理域名的配置
|
17天前
|
搜索推荐 网络协议 Apache
如何把一个域名自动重定向到另一个网站
如何把一个域名自动重定向到另一个网站
19 0
|
2月前
|
应用服务中间件 nginx
nginx 根据域名转发
nginx 根据域名转发
42 0
|
5月前
|
应用服务中间件 Linux nginx
linux nginx域名证书到期,拿着客户给的新证书文件在nginx中对证书进行替换
业务场景: 📕1.找到原证书位置,可在nginx 配置文件中查找到 🖥️2.找到位置后将原文件名字 加上.old (需要更换两个文件 一个.pem 一个.key) 🔖3.将新证书文件放在原目录,并重命名为原证书文件名称 📌4.cd到sbin目录 reload nginx 📇5.查询是否替换成功 🧣6、最后的话 业务场景: 域名证书到期,拿着客户给的新证书文件在nginx中对证书进行替换
161 0
|
6月前
|
应用服务中间件 nginx Windows
66分布式电商项目 - nginx基于域名配置虚拟主机
66分布式电商项目 - nginx基于域名配置虚拟主机
43 0
|
6月前
|
运维 应用服务中间件 Go
通过Nginx配置域名映射到本地项目
通过Nginx配置域名映射到本地项目
231 0
|
28天前
|
存储 缓存 负载均衡
阿里云DNS常见问题之域名DNS跳转有问题如何解决
阿里云DNS(Domain Name System)服务是一个高可用和可扩展的云端DNS服务,用于将域名转换为IP地址,从而让用户能够通过域名访问云端资源。以下是一些关于阿里云DNS服务的常见问题合集:
|
28天前
|
域名解析 弹性计算 网络协议
阿里云DNS常见问题之确认域名是否在Private zone解析失败如何解决
阿里云DNS(Domain Name System)服务是一个高可用和可扩展的云端DNS服务,用于将域名转换为IP地址,从而让用户能够通过域名访问云端资源。以下是一些关于阿里云DNS服务的常见问题合集: