Nginx上配置Basic Authorization登录认服务证的教程_nginx

关于Basic Authorization
在HTTP中,Basic Authorization基本认证是一种用来允许Web浏览器或其他客户端程序在请求时提供用户名和口令形式的身份凭证的一种登录验证方式。
在发送之前是以用户名追加一个冒号然后串接上口令,并将得出的结果字符串再用Base64算法编码。例如,提供的用户名是Aladdin、口令是open sesame,则拼接后的结果就是Aladdin:open sesame,然后再将其用Base64编码,得到QWxhZGRpbjpvcGVuIHNlc2FtZQ==。最终将Base64编码的字符串发送出去,由接收者解码得到一个由冒号分隔的用户名和口令的字符串。
虽然对用户名和口令的Base64算法编码结果很难用肉眼识别解码,但它仍可以极为轻松地被计算机所解码,就像其容易编码一样。编码这一步骤的目的并不是安全与隐私,而是为将用户名和口令中的不兼容的字符转换为均与HTTP协议兼容的字符集。
优点:

  • 使用非常简单,
  • 开发和调试工作简单,
  • 没有复杂的页面跳转逻辑和交互过程;
  • 更利于发起方控制。

下面我们就来正式看一下如何在Nginx上配置一个Basic Auth认证的下载服务:

建用户和文件夹
新建用户 shareuser:
建data文件夹,并

chown -R shareuser:shareuser /path/to/data

列出指定目录下的文件:
需要的指令是autoindex on;, 即可列出该目录下的所有文件并可以递归计入子目录。
还有两个辅助的指令

  • autoindex_exact_size on | off; , 即文件大小以字节数显示还是K/M/G显示
  • autoindex_localtime on | off; 以local timezone还是UTC显示文件的修改时间。

配置Basic Auth

两个指令

  • auth_basic "Restricted";
  • auth_basic_user_file ./passwd;

auth_basic_user_file是一个存储用户名密码的文件。需要htpasswd命令来生成,

密码文件生成
首先需要安装

sudo apt-get install apache2-utils

命令

htpasswd -c /path/to/passwd username

-c 是新建一个文件, 如果是append到已有文件,不用该选项。
根据提示输入密码即可。
Config Sample
测试项目文件结构如下:

app
 conf
 nginx.conf
   passwd
 data

最终的结果如下:

 

 user shareuser;

 server {
  listen 8011;

  root data;
  # index index.html index.htm; #关闭index, 否则会显示index.html而不是列出文件

  location / {
   autoindex on;
   autoindex_exact_size off;
   autoindex_localtime on;

   auth_basic "Restricted";
   auth_basic_user_file passwd;
  }
 }
}

启动

 nginx -p /path/to/app -c conf/nginx.conf 

即可访问。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索nginx
, 用户
, 认证
BasicAuth
authorization basic、nginx authorization、nginx auth basic、nginx basic认证、nginx basic,以便于您获取更多的相关知识。

时间: 2024-10-28 18:22:14

Nginx上配置Basic Authorization登录认服务证的教程_nginx的相关文章

Nginx安装配置PHP(FastCGI)环境的教程

这篇是Nginx安装配置PHP(FastCGI)环境的教程.Nginx不支持对外部程序的直接调用或者解析,所有的外部程序(包括PHP)必须通过FastCGI接口来调用. 一.什么是 FastCGI FastCGI是一个可伸缩地.高速地在HTTP server和动态脚本语言间通信的接口.多数流行的HTTP server都支持FastCGI,包括Apache.Nginx和lighttpd等,同时,FastCGI也被许多脚本语言所支持,其中就有PHP. FastCGI是从CGI发展改进而来的.传统CG

在NGINX上配置HTTPS---血的教训--要重启NGINX

重启,不是重载!!! 是STOP & START 而不是RELOAD!!! 纠结了好几天...(难道有的NGINX上不用重启????)   你妹的,上次也是,,PHP-FPM,将一个PHP的程序连MYSQL数据库从IP更改为域名,也要重启PHP-FPM才生效!!!! 跟WIN一样??重启也能解决UX80%的问题???? ~~~~~~~~~~~~~~~~~~   Nginx SSL 数字证书安装 第一步:获取服务器证书 1.  获取域名型(DV)中级证书访问:/support/root-dvssl

Nginx上配置域名永久重定向

当我们的站点更换域名的时候,需要将所有针对旧域名的请求全部重定向到新域名上.步骤如下: 1.假定我们的旧域名为111cn.net,新域名为www.111cn.net. 2.在Nginx上,为新域名配置一个server.  代码如下 复制代码 server {     listen       80;     server_name  www.111cn.net;     # 其它省略 } 3.在Nginx上,为旧域名配置一个server.  代码如下 复制代码 server {     list

Nginx中配置过滤爬虫的User-Agent的简单方法_nginx

过去写博客的时候经常出现服务器宕机,网页全部刷不出来,但是Ping服务器的时候又能Ping通.登录SSH看了下top,惊呆了,平均负载13 12 8.瞬间觉得我这是被人DDOS了么?看了下进程基本上都是php-fpm把CPU给占了,去看下日志吧... 一看不得了,基本上都是被一个User Agent叫"YisouSpider"的东西给刷屏了,一看就不知道是哪的蜘蛛,太没节操了. 找到根目录配置区,增加User Agent过滤判断语句,发现叫"YisouSpider"

在Nginx中增加对OAuth协议的支持的教程_nginx

我们使用Nginx的Lua中间件建立了OAuth2认证和授权层.如果你也有此打算,阅读下面的文档,实现自动化并获得收益. SeatGeek在过去几年中取得了发展,我们已经积累了不少针对各种任务的不同管理接口.我们通常为新的展示需求创建新模块,比如我们自己的博客.图表等.我们还定期开发内部工具来处理诸如部署.可视化操作及事件处理等事务.在处理这些事务中,我们使用了几个不同的接口来认证:     Github/Google Oauth     我们SeatGeek内部的用户系统     基本认证  

或许是 Nginx 上配置 HTTP2 最实在的教程了

前言 从 2015 年 5 月 14 日 HTTP/2 协议正式版的发布到现在已经快有一年了,越来越多的网站部署了 HTTP2,HTTP2 的广泛应用带来了更好的浏览体验,只要是 Modern 浏览器都支持,所以部署 HTTP2 并不会带来太多困扰. 虽然 h2 有 h2c (HTTP/2 Cleartext) 可以通过非加密通道传输,但是支持的浏览器初期还是比较少的,所以目前部署 h2 还是需要走加密的,不过由于 Let's Encrypt 大力推行免费证书和证书的廉价化,部署 h2 的成本并

在nginx中配置pathinfo模式支持thinkphp的URL重写_nginx

最近一个项目中使用了ThinkPHP做为开发框架,URL上我们使用了PATHINFO模式,但是Nginx默认是不支持PATHINFO的,需要进行手动配置才可以,于是我们按照了以下方法进行了Nginx的PATHINFO支持配置:修改nginx.conf,找到server中的 location ~ .php${},修改为location ~ .php {},并在其中增加以下内容: 复制代码 代码如下: set $path_info "";set $real_script_name $fas

Nginx优化配置和内核优化 实现突破十万并发_nginx

nginx指令中的优化(配置文件) 复制代码 代码如下: worker_processes 8; nginx进程数,建议按照cpu数目来指定,一般为它的倍数. 复制代码 代码如下: worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000; 为每个进程分配cpu,上例中将8个进程分配到8个cpu,当然可以写多个,或者将一个进程分配到多个cpu. 复制代码 代码如下: wo

在nginx中实现单位时间内限制访问频率的教程_nginx

首先说一下遇到这个问题是因为网站被攻击,阿里云报警,想到要限制一下访问频率,而不是限制ip(限制ip的方案稍后给出).nginx连接资源被吃空返回状态码是502,添加本方案限制后返回599,与正常状态码区别开. 步骤如下: 首先nginx.conf里面添加如下内容: map $http_x_forwarded_for $clientRealIp { "" $remote_addr; ~^(?P<firstAddr>[0-9\.]+),?.*$ $firstAddr; } #