Apache与Nginx登录认证配置详解(可认证目录)

一、Apache认证

认证的类型:Basic
Digest摘要
认证方法:A、容器认证:<Directory> ……</Directory>
B、隐藏文件认证创建.htaccess文件

方法一、容器认证

A、进入配置文件vi /etc/httpd/conf/httpd.conf
B、配置:大约在531行附近配置如下:

 代码如下 复制代码
<Directory “/var/www/html/mrtg”>
AllowOverride None##不允许通过隐藏认证,即通过容器认证
AuthType Basic##认证类型为Basic
AuthName“ajian”##认证名字为Ajian
AuthUserFile/var/www/passwd/pass##pass为认证密码文件,指定密码文件存放的位置。
Requirevalid-user##有效用户(注意大小写,因为Word的原因有些大小写有变化)
</Directory>

C、创建目录mkdir-p/var/www/passwd
进入目录cd /var/www/passwd
D、创建Apache用户htpasswd-cpassajian##pass为密码文件Ajian为用户
更改把Pass文件的使用权给Apache:chown apache.apache pass
附:再在Pass文件中添加一个用户:htpasswdpasstt##添加一个TT的用户到Pass文件中
E、重启服务并测试

方法二、通过隐藏认证

和上面差不多不过配置不一样

 代码如下 复制代码
Httpd主配置文件
<Directory “/var/www/html/mrtg”>
AllowOverrideAuthConfig
</Directory>
创建隐藏文件并放到要通过认证的目录
Eg:vi/var/www/html/mrtg
AuthTypeBasic
AuthName“Ajian”
AuthUserFile/var/www/passwd/pass
Require valid-user

二、Nginx 登录认证

如果要进行登录认证访问,在nginx.conf中的虚拟主机配置:

 代码如下 复制代码

auth_basic  "web test";
auth_basic_user_file  /www/htpasswd.conf;

注意:1、 auth_basic_user_file 最好用绝对路径
然后编辑htpasswd.conf文件,

需要用Apache的htpasswd命令生成:
# /usr/local/apache/bin/htpasswd -nb user 123456
user:0MIByk5HqBep

将输出的导入到htppasswd.conf中:
user:0MIByk5HqBepY

注意:1、这个文件跟nginx的用户要同权限

补充:为目录加上密码认证

例如:基于整个网站的认证,auth_basic在php解释之前。

 代码如下 复制代码
server  
{  
    listen 80;  
    server_name www.111cn.net 111cn.net;  
    root /www/111cn.net;  
    index index.html index.htm index.php;  
    auth_basic "input you user name and password";  
    auth_basic_user_file /usr/local/nginx/conf/vhost/nginx_passwd;  
    location ~ .php$  
    {  
        fastcgi_pass 127.0.0.1:9000;  
        fastcgi_index index.php;  
        include fastcgi_params;  
    }  
    location ~ /.ht  
    {  
        deny all;  
    }  
    access_log /logs/111cn.net_access.log main;  

 
针对目录的认证,在一个单独的location中,并且在该location中嵌套一个解释php的location,否则php文件不会执行并且会被下载。auth_basic在嵌套的location之后。

 代码如下 复制代码
server  
{  
    listen 80;  
    server_name www.111cn.net 111cn.net;  
    root /www/111cn.net;  
    index index.html index.htm index.php;  
    location ~ ^/admin/.*  
    {  
    location ~ .php$  
    {  
        fastcgi_pass 127.0.0.1:9000;  
        fastcgi_index index.php;  
        include fastcgi_params;  
    }  
    auth_basic "auth";  
    auth_basic_user_file /usr/local/nginx/conf/vhost/auth/admin.pass;  
    }  
    location ~ .php$  
    {  
        fastcgi_pass 127.0.0.1:9000;  
        fastcgi_index index.php;  
        include fastcgi_params;  
    }  
    location ~ /.ht  
    {  
        deny all;  
    }  
    access_log /logs/111cn.net_access.log main;  

这里有一个细节,就是location ~ ^/admin/.* {…} 保护admin目录下的所有文件。如果你只设了/admin/ 那么直接输入/admin/index.php还是可以访问并且运行的。 ^/admin/.* 意为保护该目录下所有文件。当然,只需要一次认证。并不会每次请求或每请求一个文件都要认证一下。

时间: 2024-08-22 14:31:24

Apache与Nginx登录认证配置详解(可认证目录)的相关文章

Nginx配置文件(nginx.conf)配置详解(总结)_nginx

现在经常碰到有新用户问一些很基本的问题,最近整理了一下,Nginx的配置文件nginx.conf配置详解如下: user nginx nginx ; Nginx用户及组:用户 组.window下不指定 worker_processes 8; 工作进程:数目.根据硬件调整,通常等于CPU数量或者2倍于CPU. error_log logs/error.log; error_log logs/error.log notice; error_log logs/error.log info; 错误日志:

CentOS6.3下nginx性能优化配置详解(1/2)

一.NGINX优化配置 1.主配置文件优化: # vi /usr/local/nginx/conf/nginx.conf ----------------------------------------- user nginx nginx; worker_processes 8; worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000; error_log  /usr/local/ngi

Linux服务器下nginx的安全配置详解_nginx

Nginx是一个轻量级,高性能的Web服务器/反向代理和电子邮件 代理(IMAP/POP3),它可以运行在UNIX,GNU/Linux,BSD变种,MAC OS X,Solaris和Microsoft Windows上.根据Netcraft的调查数据显示,互联网上6%的域名都使用了Nginx Web服务器.Nginx是解决C10K问题的服务器之一,与传统服务器不一样,Nginx不依赖于线程处理请求,相反,它使用了一个更具扩展性的事件驱 动(异步)架构.Nginx在很多高流量网站上得到了应用,如W

深入Apache与Nginx的优缺点比较详解_php技巧

1.nginx相对于apache的优点: 轻量级,同样起web 服务,比apache占用更少的内存及资源 抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能 高度模块化的设计,编写模块相对简单 社区活跃,各种高性能模块出品迅速啊 apache 相对于nginx 的优点: rewrite ,比nginx 的rewrite 强大 动态页面 模块超多,基本想到的都可以找到 少bug ,nginx 的bug 相对较多  超稳定 存在就

Nginx SSI指令配置详解_nginx

什么是SSI Server Side Include,通常称为服务器端嵌入,是一种类似于ASP的基于服务器的网页制作技术.大多数(尤其是基于Unix平台)的WEB服务器如Netscape Enterprise Server等均支持SSI命令. 为什么要用SSI 用个例子来说明,一个静态化的页面中,需要嵌入一小块实时变化的内容,.例如首页,大部分的页面内容需要缓存但是用户登录后的个人信息是动态信息,不能缓存.那么如何解决这个"页面部分缓存"问题,利用SSI就可以解决,在首页的静态页面中嵌

zabbix监控nginx日志的配置详解

能够监控到日志中客户端链接响应时间和响应返回码,监控超过十秒的50.100.1000的个数,监控响应时间的平均数,监控响应返回码的个数,分别是302.404.502 nginx日志格式: |   log_format upstream2 '$remote_addr $remote_user [$time_local] "$request" $http_host'         '$body_bytes_sent "$http_referer" "$htt

nginx技术(2)nginx的配置详解

nginx的配置 1,启动nginx [root@centos6 nginx-1.2.9]# /usr/sbin/nginx -c /etc/nginx/nginx.conf 启动nginx [root@centos6 nginx-1.2.9]# ps -ef|grep nginx 查看进程 root 5479 1 0 04:15 ? 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf nginx 548

php 伪静态与php mysql apache配置详解

php教程 伪静态与php mysql教程 apache配置详解 配置过程: (一)http.conf   把php直接作为apache的一个模块运行,我在里面加了两句: loadmodule php5_module "e:/php/php5apache2.dll" addtype application/x-httpd-php .php 我在e:apache2目录下建立了一个www的目录用于存放我的站点文件,在http.conf里改了这样一句话: 把documentroot &quo

Nginx 服务器安装及配置文件详解介绍_nginx

Nginx 在工作中已经有好几个环境在使用了,每次都是重新去网上找博客,各种编译配置,今天自己也整理一份安装文档和 nginx.conf 配置选项的说明,留作以后参考. 1. 安装nginx 1.1 选择稳定版本 我们编译安装nginx来定制自己的模块,机器CentOS 6.2 x86_64.首先安装缺少的依赖包: # yum -y install gcc gcc-c++ make libtool zlib zlib-devel openssl openssl-devel pcre pcre-d