LAMPサーバーにNginxをリバースプロキシとして追加する

Linuxサーバー
既存のLAMPサーバーにNginxをリバースプロキシとして追加しました。
サーバー環境は下記の通りです。

  • CentOS 6.4 64bit
  • apache 2.2.15
  • php 5.4.21
  • mysql 5.5.33

以下、2013/10/21時点の情報になります。
Nginxとapacheは同一サーバーで動作させ、Nginxは80番ポート、apacheは8080番ポートで動作させます。
また、Virtual Hostは使用せず、すべてのアクセスをapacheに転送します。

Nginxのインストール

epelリポジトリのNginxはバージョンが古いため、Nginx本家のリポジトリから最新バージョンをインストールします。

 # vim /etc/yum.repos.d/nginx.repo 
 [nginx]
 name=nginx repo
 baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
 gpgcheck=0
 enabled=1
 # yum install nginx

CentOS以外のOSでは、下記を参考にしてください。
http://wiki.nginx.org/Install

Nginxの設定

デフォルト設定ファイルを削除または、conf以外の拡張子にリネームしてincludeされないようにします。

 mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.dist

リバースプロキシ用の設定ファイルを追加します。
server_nameは実際のホスト名に合わせて変更します。

 # vim /etc/nginx/conf.d/proxy.conf 
 server {
     listen       80;
     server_name  localhost;
 
     charset   utf-8;
     keepalive_timeout  65;
     server_tokens       off;
     sendfile            on;
     tcp_nopush          on;
     tcp_nodelay         off;
 
     index index.php index.html index.htm;
     location / {
         proxy_pass http://localhost:8080;
         proxy_set_header        X-Real-IP       $remote_addr;
         proxy_set_header        Host            $host;
         proxy_redirect          off;
         proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_connect_timeout 90;
         proxy_send_timeout 90;
         proxy_read_timeout 90;
         client_max_body_size 10m;
         client_body_buffer_size 128k;
         proxy_buffer_size 4k;
         proxy_buffers 4 32k;
         proxy_busy_buffers_size 64k;
     }
 }

設定ファイルをテストします。

 # nginx -t

Nginxを起動します。

 # service nginx start

Apacheの設定変更

動作させるポート番号を80から8080に変更します。

 # vim /etc/httpd/conf/httpd.conf

Listen 80を下記に変更します。

 Listen 8080

mod_rpafのインストール

Apache上でリバースプロキシーではなく元のアクセス元のIPアドレスを参照できるようにするためにmod_rpafをインストールします。
アクセスログにアクセス元を記録させるだけで良ければ、access_logのLogFormatにX-Forwarded-Forを追加するだけで済みます。なお、apahche 2.2ではerror_logのフォーマットを変更することはできません。(apache 2.4では変更可能になっています)

mod_rpafはソースコードからインストールするか、atomicリポジトリからyumでインストールします。

 # wget -q -O - http://www.atomicorp.com/installers/atomic | sh 
 # yum install mod_rpaf

apacheの設定をテストしてOKなら再起動します。

 # service httpd configtest
 # service httpd restart

以上で、Nginxをインストールする前と同様にWebサイトにアクセスできるようになりました。
動作に問題なければNginxを自動で起動するように設定します。

 # chkconfig nginx on

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です