前回初期設定を行ったので今回はWebサーバの設定を行う。
今回利用するのはApache。lighttpdなどほかにもあるけれど、一番情報がそろっているので今回はこれにした。
Apacheの設定ファイルは/etc/httpd/conf/httpd.conf。Webminのサーバ→Apache Webサーバ→グローバル設定→設定ファイルの編集から編集をすることができる。
以下は変更場所。
ServerTokens OS
↓ (サーバの情報を隠す)
ServerTokens Prod
Timeout 300
↓ (タイムアウト時間を短縮)
Timeout 120
<IfModule prefork.c>
StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 4000
</IfModule>
↓ (Apacheのプロセス数など変更)
<IfModule prefork.c>
StartServers 2
MinSpareServers 3
MaxSpareServers 5
ServerLimit 128
MaxClients 50
MaxRequestsPerChild 25
MaxMemFree 64000
</IfModule>
ServerAdmin [root@localhost](mailto:root@localhost)
↓
ServerAdmin 管理者のメールアドレス
#ServerName [www.example.com:80](http://www.example.com:80)
↓
ServerName *:80
Options Indexes FollowSymLinks
↓ (CGIの許可)
Options Indexes ExecCGI FollowSymLinks
AllowOverride None
↓ (.htaccessによる設定変更の許可)
AllowOverride All
DirectoryIndex index.html index.html.var
↓
DirectoryIndex index.html index.html.var index.php index.shtml
ServerSignature On
↓ (Apacheのバージョン情報を隠す)
ServerSignature Off
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
↓ (CGIの実行場所制限を解除)
#ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
AddLanguage ja .ja (←を最上位に移動)
LanguagePriority (一番最初にjaがくるように変更)
AddDefaultCharset UTF-8
↓ (文字コード指定を廃止)
#AddDefaultCharset UTF-8
#AddEncoding x-gzip .gz .tgz
↓ (gzip圧縮の対応)
AddEncoding x-gzip .gz .tgz
AddType application/x-httpd-php .php (PHPの対応)
#AddHandler cgi-script .cgi
↓ (CGIの対応)
AddHandler cgi-script .cgi .pl
#NameVirtualHost *:80
↓ (バーチャルホストの有効化)
NameVirtualHost *:80
SetOutputFilter DEFLATE (圧縮転送の有効化)
とりあえずはこんなところか。
私の場合は2ちゃんねるのスレッドのDAT倉庫にgzip圧縮を利用しているので
<Files *.html.gz>
ForceType text/html
</Files>
こんな設定をしておいた。
次にバーチャルホストの設定。
バーチャルホストを利用することで一つのサーバで複数のドメインの違うサイトを運営できる。
本来httpd.confに書き込むけれど見にくくなるので新しくconfファイルを作ってそこに書くことにした。
こんな感じ。
/etc/httpd/conf.d/virtualhost.conf
<virtualHost *:80>
ServerName サイトのドメイン
DocumentRoot /home/ユーザー名/public_html/
ServerAdmin サイト管理者のメールアドレス
ErrorLog /home/ユーザー名/log/errorlog
<directory "/home/ユーザー名/">
AllowOverride All
Allow from All
Options +ExecCGI
</directory>
</virtualHost>
これでpublic_htmlディレクトリ内にファイルを置けば公開されるはず。。
ついでにgzip圧縮転送の設定も行っておく。
これを利用すれば転送が軽くなるはず。
/etc/httpd/conf.d/deflate.conf
<Location />
# DEFLATEの有効化
AddOutputFilterByType DEFLATE text/html text/plain text/xml
# 送信先ブラウザがNetscape 4.xの場合はtext/htmlのみ圧縮
BrowserMatch ^Mozilla/4 gzip-only-text/html
# 送信先ブラウザがNetscape 4.06-4.08の場合は圧縮しない
BrowserMatch ^Mozilla/4.0[678] no-gzip
# 送信先ブラウザがMSIEの場合は全て圧縮する
BrowserMatch bMSI[E] !no-gzip !gzip-only-text/html
# プロキシサーバーが圧縮未対応ブラウザへ圧縮ファイルを送信しないようにする
Header append Vary User-Agent env=!dont-vary
#画像・動画・圧縮ファイルは圧縮しない
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png|ico|z|taz|t?gz|t?bz2?|zip|lzh|sit|rar|pdf|mp3|gz|ogg|wma|rm|wmv|mov|mpe?g)$ no-gzip dont-vary
</Location>
これでいいかな。
普通はFTPサーバも立ち上げるのだけど、セキュリティ的な理由で没。SSHサーバがあるのでSFTPなどに対応したWinSCPを利用すれば問題なし。
メールサーバーはVPSより信頼の置けるサーバーの方がよいのでGoogle Appsを利用。よって必要なし。