Nginx用户认证与域名重定向

本文涉及的产品
.cn 域名,1个 12个月
简介:

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,如需转载请自行联系原作者

相关文章
|
1月前
|
应用服务中间件 nginx
Nginx:怎么携带参数重定向
通过合理配置Nginx的 `rewrite`指令和 `return`指令,可以实现携带参数的重定向。这不仅可以确保用户请求被正确重定向,还可以保留原始查询参数,满足更多复杂的重定向需求。
170 1
|
1月前
|
应用服务中间件 nginx
Nginx:怎么携带参数重定向
通过合理配置Nginx的 `rewrite`指令和 `return`指令,可以实现携带参数的重定向。这不仅可以确保用户请求被正确重定向,还可以保留原始查询参数,满足更多复杂的重定向需求。
84 2
|
2月前
|
安全 应用服务中间件 Shell
nginx配置https的ssl证书和域名
nginx配置https的ssl证书和域名
|
3月前
|
Apache 数据安全/隐私保护
HAProxy的高级配置选项-ACL篇之域名重定向案例
这篇文章介绍了HAProxy的ACL(访问控制列表)功能,特别是如何基于域名进行重定向的高级配置选项,并通过实战案例展示了如何配置ACL规则以实现基于特定域名的HTTP重定向。
100 6
HAProxy的高级配置选项-ACL篇之域名重定向案例
|
4月前
|
应用服务中间件 nginx Docker
本地通过域名访问虚拟机上nginx的服务、搭建域名访问环境一(反向代理配置)
这篇文章介绍了如何通过域名在本地访问虚拟机上的nginx服务,包括创建nginx容器、修改配置文件、修改本地host文件以及进行访问测试的详细步骤。文章提供了具体的Docker命令来创建并配置nginx容器,展示了配置文件的修改示例,说明了如何在本地系统的hosts文件中添加虚拟机IP和自定义域名,以及如何通过浏览器进行测试访问。
本地通过域名访问虚拟机上nginx的服务、搭建域名访问环境一(反向代理配置)
|
4月前
|
安全 Ubuntu 搜索推荐
如何使用 Nginx 创建临时和永久重定向
如何使用 Nginx 创建临时和永久重定向
76 2
|
4月前
|
Ubuntu 应用服务中间件 网络安全
如何使用 Apache 和 Nginx 创建临时和永久重定向
如何使用 Apache 和 Nginx 创建临时和永久重定向
105 0
|
5月前
|
JavaScript 前端开发 应用服务中间件
Nginx——一个域名下部署多个Vue项目
如何在同一域名下部署第二个Vue项目而不影响现有项目:更新`vue.config.js`,设置`publicPath`为`/screen/`。修改Vue Router的`base`为`screen`。在Nginx配置中添加新location `/screen`,指向第二项目`dist`目录。测试访问`http://&lt;域名&gt;/screen/`。别忘了检查并修复任何遗漏的配置,如数据看板默认设置。
334 2
|
5月前
|
网络协议 应用服务中间件 网络安全
如何排查Nginx配置问题导致的域名访问错误
如何排查Nginx配置问题导致的域名访问错误
847 2
|
5月前
|
Go
域名重定向工具 —— SwitchHosts 实用教程
域名重定向工具 —— SwitchHosts 实用教程
655 0