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就代表成功了:
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- centos7 安装zabbix并监控windows服务器
- 宝塔面板插件-shadowsocks可视化管理
- Android面试知识笔记:那些年面试官常问的知识点...(附详细解析)
- 聊聊dubbo-go的failbackCluster
- Docker环境准备
- js实现HTML页面时钟动态显示
- WordPress标题的分隔符-被转义为–的解决办法
- WordPress网站实现下雪特效,云体验下雪的赶脚
- 小知识:后台执行Oracle创建索引免受会话中断影响
- Android:那些关于Fragment生命周期,你了解多少?
- 前端面试(题三)js
- .NET Core EFCore零基础快速入门简单使用
- vscode .vue文件 格式化配置
- 使用代码删除SAP CRM的附件(attachment)数据
- node版本管理器:nvm 和 n区别