1、配置用户认证

<Directory /data/discuz/passwd>
AllowOverride AuthConfig
AuthName "自定义的"
AuthType Basic
AuthUserFile /data/.htpasswd
require valid-user
</Directory>

1) AuthName命令:指定认证区域名称。区域名称是在提示要求认证的对话框中显示给用户的。
2) AuthType命令:指定认证类型。在HTTP1.0中,只有一种认证类型:basic。在HTTP1.1中有几种认证类型,如:MD5。
3) AuthUserFile命令:指定一个包含用户名和密码的文本文件,每行一对。
4) AuthGroupFile命令:指定包含用户组清单和这些组的成员清单的文本文件。组的成员之间用空格分开,如:
     managers:user1 user2
5) require命令:指定哪些用户或组才能被授权访问。如:
     require user user1 user2(只有用户user1和user2可以访问)
     requires groups managers (只有组managers中成员可以访问)
     require valid-user (在AuthUserFile指定的文件中任何用户都可以访问)

cd /data/discuz/passwd

htpasswd -c /data/.htpasswd user1

htpasswd  /data/.htpasswd user2

apachectl graceful

2、默认虚拟主机

如果在现有的web服务器上增加虚拟主机,必须也为现存的主机建造一个<VirtualHost>定义块。其中ServerName和DocumentRoot所包含的内容应该与全局的保持一致,且要放在配置文件的最前面,扮演默认主机的角色。

<VirtualHost *:80>
DocumentRoot "/data/default"
ServerName www.default.com
</VirtualHost>

3.域名301跳转

Rewirte主要的功能就是实现URL的跳转,它的正则表达式是基于Perl语言。可基 于服务器级的(httpd.conf)和目录级的 (.htaccess)两种方式。如果要想用到rewrite模块,必须先安装或加载rewrite模块。方法有两种一种是编译apache的时候就直接 安装rewrite模块,别一种是编译apache时以DSO模式安装apache,然后再利用源码和apxs来安装rewrite模块

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.nyan.com$ [OR]
     RewriteCond %{HTTP_HOST} ^www.domain2.com$
RewriteRule ^(/.*)$ http://www.test.com/$1 [R=301,L]
</IfModule>

4.日志切割

at /usr/local/apache/conf/httpd.conf

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common

ErrorLog "logs/dummy-host.example.com-error_log"
CustomLog "logs/dummy-host.example.com-access_log" common

==>

ErrorLog "logs/test.com-error_log"
CustomLog "| /usr/local/apache/bin/rotatelogs /usr/local/apache/logs/test.com-access_log_%Y_%m_%d 86400" combined

5.不记录指定文件

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/apache2/bin/rotatelogs -l /usr/local/apache2/logs/test.com-access_%Y%m%d_log 86400" combined env=!image-request

6.配置静态缓存

默认缓存时间是10天,css缓存时间是14天

<IfModule mod_expires.c>
# mod_expires
ExpiresActive on
ExpiresDefault A864000
ExpiresBytype text/css “access plus 14 days
ExpiresByType text/javascript “access plus 14 days ”
ExpiresByType application/x-javascript “access plus 14 days ”
ExpiresByType application/x-shockwave-flash “access plus 14 days ”
ExpiresByType image/* “access plus 14 days ”
ExpiresByType text/html “access plus 14 days ”
<FilesMatch “.(flv|ico|pdf|avi|mov|ppt|doc|mp3|wmv|wav|jpg|gif)$”>
ExpiresDefault A864000
</FilesMatch>
</IfModule>

7.配置防盗链

SetEnvIfNoCase Referer "^http://.*\.test\.com" local_ref

SetEnvIfNoCase Referer ".*\.nyan\.com" local_ref

<filesmatch "\.(txt|doc|png|jpeg|js|css|zip|gif|rar|mp3)">

  Order Allow,Deny

  Allow from env=local_ref

</filesmatch>

SetEnvIfNoCase Referer "^http://.*\.test\.com" local_ref
SetEnvIfNoCase Referer ".*\.nyan\.com" local_ref
<filesmatch "\.(txt|doc|png|jpeg|js|css|zip|gif|rar|mp3)">
Order Allow,Deny
Allow from env=local_ref
</filesmatch>

8.访问控制

curl -x192.168.1.106:80 -I http://www.test.com/forum.php

curl -x192.168.178.128:80 -I http://www.test.com/forum.php

curl -x127.0.0.1:80 -I http://www.test.com/forum.php

AllowOverride None //禁止读取.htaccess配置文件的内容

<Directory "/data/discuz">
AllowOverride None
Options None
Order Allow,Deny
Allow from all
Deny from 127.0.0.1 192.168.178.128
</Directory>

9.禁止解析PHP

<Directory "/data/discuz/data">
php_admin_flag engine off
<filesmatch "(.*)php">
Order Deny,Allow
Deny from all
ALlow from 127.0.0.1
</filesmatch>
</Directory>

10.禁止指定user_agent

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.nyan.com$
RewriteRule ^(/.*)$ http://www.test.com/$1 [R=301,L]
RewriteCond %{HTTP_USER_AGENT} ".*curl.*" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ".*chrom*" [NC]
RewriteRule .* - [F]
</IfModule>

[NC,OR]不区分大小写

Linux-LAMP虚拟主机配置的更多相关文章

  1. LAMP虚拟主机配置以及控制目录访问

    3.基于域名的虚拟主机配置 NameVirtualHost192.168.3.32:80#apache2.2.xx版本需要开启此选项,而且要和下面的保持一致:2.4.x版本就不需要此项设置了 < ...

  2. linux apache虚拟主机配置(基于ip,端口,域名)

    配置环境: linux版本:Centos6.4 httpd版本: [root@centos64Study init.d]# pwd/etc/init.d[root@centos64Study init ...

  3. Linux Apache虚拟主机配置方法

    apache 虚拟主机配置 注意: 虚拟主机可以开很多个 虚拟主机配置之后,原来的默认/etc/httpd/httpd.conf中的默认网站就不会生效了 练习: 主机server0 ip:172.25 ...

  4. CentOS7 yum lamp 虚拟主机配置 lamp各组件简单影响性能的参数调整--for 一定的环境需求

    LAMP Server on CentOS 7 Updated Tuesday, January 13, 2015 by Joel Kruger This guide provides step-by ...

  5. linux下虚拟主机配置

    <VirtualHost *:80>ServerAdmin  admin@localhostServerName   www.baidu.org DocumentRoot "/d ...

  6. lamp centos虚拟主机配置

    1.基于不同端口的虚拟主机配置 [root@lamp~]# vi /etc/httpd/conf/httpd.conf Listen 80      #设置监听不同的虚拟主机需要使用的端口 Liste ...

  7. Linux下Apache虚拟主机配置

    Linux下Apache虚拟主机的三种配置.这样可以实现一台主机架构多个独立域名网站.其中基于域名的最为常见.性价比也最高.下面PHP程序员雷雪松详细的讲解下Linux下Apache虚拟主机配置的具体 ...

  8. linux下apache2的虚拟主机配置

    1,起因 在一星期前吧,大波说既然咱们有了自己的服务器,二级域名了.可以考虑怎样每人一个域名,分别指向我们各自的空间.想法挺好,避免我们个人的东西放在同一主页上.那就做吧 2,第一次尝试 (1)在域名 ...

  9. 【nginx运维基础(2)】Nginx的配置文件说明及虚拟主机配置示例

    配置文件说明 #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为当前主机的CPU总核心数. worker_processes 8; #全局错误日志定义类型, ...

  10. ubuntu apache2配置详解(含虚拟主机配置方法)

    ubuntu apache2配置详解(含虚拟主机配置方法) 在Windows下,Apache的配置文件通常只有一个,就是httpd.conf.但我在Ubuntu Linux上用apt-get inst ...

随机推荐

  1. .NET(C#)实现桌面背景切换(控制台应用程序,windows服务版的未实现成功)

    AdvancedBackgroundJimmy.Program.cs using AdvancedBackground; using Microsoft.Win32; using System; us ...

  2. 系统警告,Bronya请求支援(两遍最短路)

    系统警告,Bronya请求支援 Description 休伯利安号的一行人来到了由逆熵镇守的前文明遗迹[海渊城],他们准备用巨大的传送装置[海渊之眼]进入量子之海,寻找丢失的渴望宝石.然而在行动前夜爱 ...

  3. Codeforces Round #628 (Div. 2)

    1325A - EhAb AnD gCd 题意:随意找两个数是他们的最大公约数 GCD 与最小公倍数 LCM 之和为所给定的值. 思路:找一下规律 ,假设所给的 数位n, 那么我们将n分成 1 ,n- ...

  4. 手把手教你分析Mysql死锁问题

    前言 前几天跟一位朋友分析了一个死锁问题,所以有了这篇图文详细的博文,哈哈~ 发生死锁了,如何排查和解决呢?本文将跟你一起探讨这个问题 准备好数据环境 模拟死锁案发 分析死锁日志 分析死锁结果 环境准 ...

  5. Golang入门(1):安装与配置环境变量的意义

    摘要 在几年前学习Java的时候,环境的配置就会劝退一部分的初学者.而对于Golang来说,也需要从环境的配置开始学起.这一篇文章将从如何安装Golang开始讲起,随后将会提到Golang中的环境变量 ...

  6. php--php设计模式留存

    装饰者模式 <?php interface Decorator { public function display(); } class XiaoFang implements Decorato ...

  7. python--装饰器、生成器、迭代器、元类

    一.装饰器 def w1(func): def inner(): func() return inner @w1 def f1(): ') 1.只要python解释器执行到装饰器,就会自动进行装饰,而 ...

  8. Hadoop(十):本地IDEA链接远程Hadoop

    本文使用的Hadoop为2.7.7,版本如果不同要下载相应版本的文件 配置本地的Hadoop库(不需完整安装,但是要有环境支持) 下载文件 https://github.com/speedAngel/ ...

  9. python redis 实现简单的消息订阅

    python + redis 实现简单的消息订阅 订阅端 import redis from functools import wraps class Subscribe: def __init__( ...

  10. 汇编刷题:求1000H单元开始的10个无符号字节数的最大值(本题放入了BL寄存器)

    DATA SEGMENT ORG 1000H INFO DB 1,2,3,4,5,70H,71H,72H,80H,92H MAX DB 00H DATA ENDS CODE SEGMENT ASSUM ...