Linux-LAMP虛擬主機配置


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]不區分大小寫


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM