Webサーバー - さくらのVPSを使ってみた

Webサーバー

Webで何かを公開する時にはWebサーバーを使います。Webサーバーは端末からの要求を受け付け、コンテンツを返す役割を持ちます。

LinuxではApacheやNginx、WindowsではIISが代表的なWebサーバーです。

本サイトは比較的安価なサーバーで利用できるリソースも多くはないので、比較的少ないリソースで動作するNginxを使用しています。

Nginxをインストールする

Nginxはyumコマンドでインストールできます。

$ sudo yum -y install nginx

静的コンテンツを公開する

公開できるコンテンツはいろいろありますが、簡単に公開できるのはHTMLファイルや画像ファイルで構成する静的コンテンツです。本サイトも静的コンテンツとして作成しています。

ディレクトリーを作成する

コンテンツを配置するディレクトリーを作成します。このディレクトリー配下に配置したファイルが公開の対象となります。このサイトではドメイン名と合わせて/var/www/vhosts/doc.mas3.net/htdocsというディレクトリーを作っています。一般ユーザーで編集できるようディレクトリーの所有者を変更します。

$ sudo mkdir -p /var/www/vhosts/doc.mas3.net/htdocs
$ sudo chown user:user /var/www/vhosts/doc.mas3.net/htdocs

設定ファイルの修正

コンテンツ配置ディレクトリーの場所を設定ファイルに記載します。

$ sudo vi /etc/nginx/conf.d/virtual.conf

名前ベースのバーチャルホストを利用するのでserver_nameを使用します。

server {
    listen       80;
    server_name  doc.mas3.net;

    location / {
        root     /var/www/vhosts/doc.mas3.net/htdocs;
        index    index.html;
    }
}

起動と自動起動の設定

設定が終わったらNginxを起動します。

$ sudo service nginx start

サーバー再起動時にNginxを自動起動するように設定します。

$ sudo chkconfig nginx on

Web公開用のポートを開ける

ファイアウォールの設定をするの設定例を参考にiptablesを設定していると、コンテンツ要求のリクエストをブロックしてしまうのでそれを解除します。

/etc/sysconfig/iptablesを開きます。

$ sudo vi /etc/sysconfig/iptables

80番ポートの外から中への通信を許可するために下記を追記します。

# incomming HTTP
-A INPUT  -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED     -j ACCEPT

設定を変更したらiptablesを再起動します。

$ sudo service iptables restart