前置き
今までちゃんと自力で 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.conf
のListen 80
をコメントアウト。Listen 8100
を追加。/etc/apache2/sites-available/
配下の各 VirtualHost ファイルで、<VirtualHost *:8100>
のように
ポート指定を 80 番から変更。/usr/sbin/apachectl configtest
してコンフィグテスト。
そのあと
service apache2 restart
service nginx start
的な感じで、双方サーバーを再起動、起動する。
今後の予定
漸進的に、徐々にサイト1つずつ、 nginx の機能を使ってレスポンスするように必要に応じて置き換えをしていきたい。
キャッシュを使ってレスポンスしたり、皆さんがよくやってる、ああいう、そういうことをして行きたい、そんな所存。
以上。