sudo apt-get install apache2
パッケージ内容:
apache2.2-common (= 2.2.22-1ubuntu1)
apache2-mpm-worker (= 2.2.22-1ubuntu1)
apache2-mpm-prefork (= 2.2.22-1ubuntu1)
apache2-mpm-event (= 2.2.22-1ubuntu1)
apache2-mpm-itk (= 2.2.22-1ubuntu1)
●Apacheフォルダ説明
インストールフォルダ:/etc/apache2
apache2.conf―グローバル設定ファイル、基本は修正しない
conf.d/―普通の設定内容
envvars―環境変数、基本は修正しない
httpd.conf―ユーザー設定ファイル
magic―MIME設定、基本は修正しない
mods-available/―インストールされたモジュール
mods-enabled/―起用されたモジュール
ports.conf―httpdサービスポート
sites-available/―利用可能なバーチャルホスト
sites-enabled/―利用中のバーチャルホスト
●モジュール
未使用モジュール確認
sudo a2enmod
使用中モジュール確認
sudo a2dismod
新しいモジュール検索とインストール
sudo apt-cache search libapache2-mod
sudo apt-get install <libapache2-mod-XXX>
●ウェブフォルダ
基本はウェブフォルダは【/var/www】(DocumentRoot)となります、拡張性を考慮するため、下記のように構成するほうがいいでしょう。
/var/www/www.example1.com
/var/www/www.example2.com
/var/www/www.example3.com
●ウェブサイト起用
sudo a2ensite
sudo a2dissite
●バーチャルホスト
http://komanew.blogspot.jp/2011/11/apache-virutalhost.html
●SSL
SSL起用手順:
①mod_sslを有効にする
sudo a2enmod ssl
sudo service apache2 restart
②ドメイン証明書を作成、インストールする
ビジネス運用場合はCAに申請する
③バーチャルホスト設定ファイルを修正し、Apapcheサービスを再起動する
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
■ドメイン証明書作成
openssl genrsa -des3 -out server.key 1024
openssl req -new -key server.key -out server.csr
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
●Rewrite
すべてのhttpリクエストをhttpsにリライトする
sudo nano -wci /etc/apache2/sites-available/default
#VirtualHostタブの中に下記を追加する
...
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)?$ https://%{HTTP_HOST}$1 [R,L]
...
●負荷テスト(Apache ab)
ab -n 100 -c 10 http://xxx.xxx.xxx.xxx/
-n 数値:リクエストの回数を指定
-c 数値:同時に発行するリクエストの数を指定
-A ユーザ名:パスワード(ベーシック認証に必要なユーザ情報を指定)
●セキュリティ
①Apacheバージョン情報を隠す
sudo nano -wc /etc/apache2/conf.d/security
編集内容:
ServerTokens Prod
確認方法:
telnet xxx.xxx.xxx.xxx 80
HEAD / HTTP/1.0
②必要ないモジュールを禁止
sudo a2dismod
③DDos攻撃を弱める
sudo apt-get install libapache2-mod-evasive
sudo nano -wc /etc/apache2/conf.d/evasive
<IfModule mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
#DOSEmailNotify you@yourdomain.com
#DOSSystemCommand "su - someuser -c '/sbin/... %s ...'"
DOSLogDir "/var/lock/mod_evasive"
DOSWhitelist 127.0.0.1
DOSWhitelist 127.0.0.*
</IfModule>
DDos攻撃テスト
cd /usr/share/doc/libapache2-mod-evasive/examples
perl test.pl
●アクセスIP限定
<Location /jsp/> ProxyPass ajp://localhost:8009/jsp/ <Limit GET POST PUT> Order Deny,Allow Deny From all Allow From 192.168.1.1 </Limit> </Location>
●パフォーマンス
sudo nano -wciE /etc/apache2/apache2.conf
...
#KeepAliveTimeout 5
KeepAliveTimeout 3
...
●圧縮転送
sudo a2enmod deflate
sudo nano -wciE /etc/apache2/sites-available/default
...
#DeflateFilterNote Input input_info
#DeflateFilterNote Output output_info
#DeflateFilterNote Ratio ratio_info
#LogFormat '"%r" %{output_info}n/%{input_info}n (%{ratio_info}n%%)' deflate
#CustomLog /var/log/apache2/deflate_log deflate
...
sudo service apache2 restart
●キャッシュ(disk)
sudo a2enmod disk_cache
sudo nano -wciE /etc/apache2/sites-available/default
...
<IfModule mod_disk_cache.c>
CacheEnable disk /
CacheRoot /var/www/cache
CacheDefaultExpire 3600
CacheMaxExpire 3600
</IfModule>
...
sudo mkdir /var/tomcat/webapps/cache
sudo chown www-data.www-data /var/tomcat/webapps/cache
sudo service apache2 restart
●キャッシュ(memory)
sudo a2enmod mem_cache
sudo nano -wciE /etc/apache2/sites-available/default
...
<IfModule mod_mem_cache.c>
CacheEnable mem /
CacheDefaultExpire 3600
CacheMaxExpire 3600
</IfModule>
...
sudo service apache2 restart
■AWStats
sudo apt-get install awstats
sudo nano -wciE /etc/default/awstats
...
#AWSTATS_LANG="en"
AWSTATS_LANG="jp"
...
sudo nano -wciE /etc/awstats/awstats.conf
...
LogFile="/var/log/apache2/access.log"
SiteDomain="yourdomain.ext"
HostAliases="localhost 127.0.0.1 yourdomain.ext"
...
sudo nano -wciE /etc/apache2/conf.d/awstats
...
Alias /awstatsclasses "/usr/share/awstats/lib/"
Alias /awstats-icon/ "/usr/share/awstats/icon/"
Alias /awstatscss "/usr/share/doc/awstats/examples/css"
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
ScriptAlias /awstats/ /usr/lib/cgi-bin/
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
...
sudo service apache2 restart
#awstats収集のため
sudo nano /etc/logrotate.d/apache2
create 640 root adm ⇒ create 644 root adm
sudo chmod 755 /var/log/apache2
sudo chmod 644 -R /var/log/apache2/*
Done!
/usr/lib/cgi-bin/awstats.pl -config=yourdomain.ext -update
http://yourdomain.ext/awstats/awstats.pl
※ログ合併
各サーバーログを[/var/log]にコピーする
/var/log/access_log_web1.log
/var/log/access_log_web2.log
合併:
/usr/share/awstats/tools/logresolvemerge.pl /var/log/access_log_web* > /var/log/access_log_weball.log
0 件のコメント:
コメントを投稿