Lamp:Apache用户认证+配置

来源:互联网 发布:金融软件开发怎么样 编辑:程序博客网 时间:2024/05/17 01:48


1.用户认证:需要输入用户名 和密码 才可以登录的

cd /dat/www

mkdir abc
cd abc

cp /etc/passwd  /data/www/abc/12.txt   例如有这么个目录文件,可以在网页显示的内容。

现增加其权限,禁止随意访问。



----------------------------------------------------------

vim /usr/local/apache2/conf/extra/httpd-vhosts.conf (虚拟主机配置文件 最后一行 上面插入以下信息

</VirtualHost>   的行上面,插入)


<Directory /data/www/abc/>       指定路径,针对哪个目录做限制
    Allowoverride AuthConfig
    AuthName "aaaaaa"
    AuthType Basic

    AuthUserFile /data/.htpasswd      必须存在的文档 ,存放用户名和密码的文档。

    require valid-user

</Directory>


保存退出


---------------------------------

快捷键设置

#vim /etc/profile.d/path.sh(结尾处增加以下信息 ,以:冒号切割      用来设置快捷键  )
:/usr/local/apache2/bin/
保存提出

# source /etc/profile.d/path.sh    2#!source   3# source !$

-------------------------------------------------------------------------------------


创建能登陆的访问的用户!

#htpasswd -c /data/.htpasswd user1( 此命令的用法创建user1的信息。二次执行该命令,则会覆盖。

因为有 -c 选项)

#htpasswd  /data/.htpasswd user2   创建账户 user2的用法
#cat /dat/.htpasswd                           查看user1和user2的加密密码
#apachectl -t                    检查语法有没错误

#apachectl graceful         从新加载Apache

----------------------------------------------------------------------------------------------------

#mkdir .htpasswd  (文件建立了,东西自动写进来)


浏览 www.test.com/abc/12.txt
vim /usr/local/apache2/conf/extra/httpd-vhosts.conf  虚拟主机配置文件

 

扩展问题:如何解决。

www.dubingyu.com/abc/ 回车

/abc/下面没有index.html  index.php 就会403




2.默认虚拟主机    禁止默认虚拟主机访问

设置的域名  例如 dubingyu。com  aaa。com  

主机上的ip ,localhost  

win host上的 串行绑定,只要写上面都可以访问。

称为默认主机访问!


为了防止其他不是自己的域名解析到自己的IP,我们可以通过更改虚拟主机文件/usr/local/apache2/conf/extra/httpd-vhosts.con 去限制其他域名。我们创建的新的虚拟主机,创建一个新的空目录将其权限设置为600。这样只有我们在配置文件中定义的域名在能访问。
命令如下:
#vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
 放置加入如下代码: 必须是第一个在第一个虚拟主机的位置

<VirtualHost *:80>
    DocumentRoot "/tmp/123"   创建空目录
    ServerName 1111.com        随意个域名
</VirtualHost>

按:wq保存退出,完成访问拒绝。

继续创建tmp目录;
#mkdir /tmp/123
#chmod 600 /tmp/123
#apachectl -t   检查
#apachectl restart   重启动就可以了



3.域名301跳转

vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
在 第二个主机<VirtualHost *:80>配置中的  错误日志,访问日志下面 添加如下:

<IfModule mod_rewrite.c>
     RewriteEngine on
     RewriteCond %{HTTP_HOST} ^www.aaa.com$        条件:什么样的条件才跳转
     RewriteRule  ^/(.*)$  http://www.test.com/$1  [R=301,L]  结果:规则(301,永久重定向对浏览器搜索引擎有好处。302临时)
</IfModule>

保存退出

#apachectl -t
#apachectl restart
# curl -x192.168.11.160:80 www.aaa.com/asllsdfsf  -I   #绑定hostsCURL测试,查看状态码301 ,ok了



或者 有多个域名时,跳到主域名 添置如下:增加一个ServerAliasRewriteCond
找到:

ServerAlias www.aaa.com

在下面增加:

ServerAlias www.bbb.com

找到
RewriteCond %{HTTP_HOST} ^www.aaa.com$  [OR]     或者的意思
在这行下面增加:

RewriteCond %{HTTP_HOST} ^www.bbb.com$
按:wq 保存退出
# apachectl -t
# apachectl restart
# curl -x192.168.11.160:80 www.bbb.com/asllsdfsf  -I   ##检查你绑定hostsCURL测试,查看状态码301 ,ok了。



4.Apache日志切割

# /usr/local/apache2/conf/extra/httpd-vhosts.conf

把两行注释打开#(ErrorLog和CustomLog) 更改如下:

  ErrorLog "logs/test.com-error_log"
  CustomLog "|/usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/test.com-access_%Y%m%d_log  86400" combined

                     "|/工具切割 - l选项  日志存放的地方绝对路径_格式   多长上时间86400秒割一次"日志类型combined级别记录,

按:wq保存退出, 检查apache -t    重启apachectl restart   

需要刷新页面,才会生成日志、每天生成一个文件



 # ls /usr/local/apache2/logs  

[root@yiqiang logs]# date -s "2017-02-18 01:01:00"  更改日期,刷新页面 , apachectl graceful 加载,就可以看到日志了

 # ls /usr/local/apache2/logs 

#cd /usr/local/apache2/logs

# wc -l  test.com/usr/local/apache2/logs-access_20170218_log  显示日志条数




5.不记录指定文件类型日志 ,不记录静态文件 
在日志中查看除了标记出的部分的内容,标记出的内容一般不用关心,一般都是图片等内容
vim /usr/local/apache/conf/extra/httpd-vhosts.conf
添加以下红色字体部分:
找到:ErrorLog "logs/test.com-error_log"  加入下面
    SetEnvIf Request_URI ".\.gif$" image-request
    SetEnvIf Request_URI ".\.jpg$" image-request
    SetEnvIf Request_URI ".\.png$" image-request
    SetEnvIf Request_URI ".\.bmp$" image-request
    SetEnvIf Request_URI ".\.swf$" image-request
    SetEnvIf Request_URI ".\.js$" image-request
    SetEnvIf Request_URI ".\.css$" image-request

CustomLog "|/usr/local/apache/bin/rotatelogs -l /usr/local/apache/logs/jqm.com-access_%Y%m%d_log 86400" combined env=!image-request
    
    若写成env=image-request,则日志保存的都是图片,=!意为:等于非,也就是非图片格式的意思
    
    /usr/local/apache/bin/apachectl -t
    /usr/local/apache/bin/apachectl restart



















0 0
原创粉丝点击