チラウラヤーン3号

その辺のプログラマーのチラ裏です。

とりあえず Apache の前段に Nginx を設置したメモ

前置き

今までちゃんと自力で nginx 導入したことない。少しは知っておかねば…。
というわけで、
Apache で稼働させてる既存サイトは、そのまま動きを維持したくて下記のようにした。

nginx は apt-get で普通にインストール。

.htaccess ファイルの内容を nginx に移行するのが面倒手間なので、 nginx はApache の前段に立てるものの、とりあえず、まずは、リクエストは全て Apache にスルーするようにするする。

参考: tomoのconcrete5 :: ApacheとNginxを共存して徐々に移行する

ライブラリインストール

を参考にした。

$ sudo apt-get install libapache2-mod-rpaf

nginx 側の設定

  • /etc/nginx/sites-enabled/default (シンボリックリンク) を削除。
  • /etc/nginx/sites-available/_default を作成して、中身を次のようにした。 (ポートは適当)
server {
        listen 80;
        server_name _;

        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Real-IP $remote_addr;

        # location ~ /\.ht {
        #         deny all;
        # }

        location / {
                proxy_pass http://localhost:8100;
                break;
        }
}
        location ~ /\.ht {
                deny all;
        }

は不要かも。

  • ln -s ../sites-available/_default defaultシンボリックリンクを作成して、設定を有効にする。
    (a2ensite みたいなコマンドは無さげ?→別にいいんだけど)
  • nginx -t してコンフィグテストする。

Apache 側の設定

  • /etc/apache2/ports.confListen 80コメントアウト
  • Listen 8100 を追加。
  • /etc/apache2/sites-available/ 配下の各 VirtualHost ファイルで、<VirtualHost *:8100> のように
    ポート指定を 80 番から変更。
  • /usr/sbin/apachectl configtest してコンフィグテスト。

そのあと

  • service apache2 restart
  • service nginx start

的な感じで、双方サーバーを再起動、起動する。

今後の予定

漸進的に、徐々にサイト1つずつ、 nginx の機能を使ってレスポンスするように必要に応じて置き換えをしていきたい。
キャッシュを使ってレスポンスしたり、皆さんがよくやってる、ああいう、そういうことをして行きたい、そんな所存。

以上。