Pandora Pocket

IT系と日常系の備忘録。三日坊主。

前回初期設定を行ったので今回は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を利用。よって必要なし。

参考にしたサイト