海外サーバーvultr

DebianまたはUbuntuでApacheを介したNginxリバースプロキシの設定

Nginxは、Apacheよりも速く静的ファイルを処理することが証明されている軽量Webサーバーです。このチュートリアルでは、Apache Webサーバー上でリバースプロキシとしてNginxをインストールする方法を説明します。

必要条件

サーバーにApacheをインストールしました。Apacheはすでにポート80でサイトを運営しています。

Apacheのリスニングポートを変更する

/etc/apache2/ports.confApacheがデフォルトのポート80ではなくポート8080をリッスンするように編集します。

次の行を見つけます。

NameVirtualHost *:80
Listen 80

次のように変更してください。

NameVirtualHost *:8080
Listen 8080

で既存の仮想ホストのリスニングポートを忘れないでください /etc/apache2/sites-enabled/*

変化する:

<VirtualHost *:80>

に:

<VirtualHost *:8080>

Apacheで未使用モジュールを無効にする

HTTPリクエストはNginxによって処理されるようになったので、ApacheではKeepAliveを無効にすることができます。編集/etc/apache2/apache2.confして変更します。

KeepAlive Off

また、以下のコマンドを実行して未使用のモジュールを無効にします。

a2dismod deflate
a2dismod cgi
a2dismod autoindex
a2dismod negotiation
a2dismod ssl

フォワードモジュールをインストールする

訪問者のIPアドレスをApacheに転送するには、Apacheにmod_rpafをインストールします。それ以外の場合、スクリプトはREMOTE_ADDR値をサーバーIPとして読み取ります。

apt-get install libapache2-mod-rpaf

Apacheサービスを停止します

/etc/init.d/apache2 restart

セットアップNginx

Nginxをインストールしてください。

apt-get install nginx

競合を防ぐためにデフォルトのvhostを削除してください。

rm -rf /etc/nginx/sites-enabled/*

新しいデフォルトの仮想ホストを作成します。

cat >/etc/nginx/sites-available/000-default <<EOF
server {
    access_log off;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_pass http://127.0.0.1:8080;
    }
}
EOF

ln -s /etc/nginx/sites-available/000-default /etc/nginx/sites-enabled/000-default

Apacheにリクエストを転送するために既存のWebサイト用の仮想ホストを作成します。

cat >/etc/nginx/sites-available/domain.com <<EOF
server {
    server_name www.domain.com domain.com;
    root /var/www/domain.com/;

    access_log off;

    # Static contents
    location ~* ^.+.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$ {
        expires max;
    }

    # Dynamic content, forward to Apache
    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_pass http://127.0.0.1:8080;
    }
}
EOF

ln -s /etc/nginx/sites-available/domain.com /etc/nginx/sites-enabled/domain.com

Nginxを再起動すれば完了です。

/etc/init.d/nginx restart