GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu15.10でApacheのリバースプロキシとしてNginxをインストールする方法

Nginxまたは"engine-x "は、2002年にIgor Sysoevによって作成された、メモリ使用量の少ない高性能Webサーバーです。Nginxは単なるWebサーバーではなく、HTTP、HTTPS、POP3、SMTP、IMAPなどの多くのプロトコルのリバースプロキシとして使用できます。ロードバランサーおよびHTTPキャッシュとしても使用できます。

Apacheは、ApacheSoftwareFoundationの下でオープンソースコミュニティによって維持されている最も人気のあるWebサーバーソフトウェアです。 WebDavサポートやmod_securityなどのWebアプリケーションファイアウォールなどのapacheで利用できるアドオンモジュールは多数あり、Perl、Python、PHPトラフネイティブモジュール、またはcgi、fcgi、FPMインターフェイスなどの多くのWebプログラミング言語をサポートしています。

このチュートリアルでは、Ubuntu15.10上のApacheWebサーバーのキャッシングリバースプロキシとしてNginxをインストールして構成します。Nginxはフロントエンドとして使用され、Apacheはバックエンドとして使用されます。 Nginxはポート80で実行され、ユーザー/ブラウザーからの要求に応答します。その後、要求はポート8080で実行されているApacheサーバーに転送されます。

ステップ1-ApacheとPHPをインストールする

SSHを使用してubuntuサーバーにログインし、次のコマンドを実行してrootユーザーになります。

sudo su

次に、apt-getコマンドを使用してapacheをインストールします。

apt-get install apache2

apacheをインストールしたら、このチュートリアルのapacheモジュールとしてPHPをインストールする必要があります。

apt-get install php5 php5-mysql libapache2-mod-php5

ステップ2-ApacheとPHPを設定する

デフォルトでは、apacheはポート80でリッスンします。ポート80は後でnginxによって使用されるため、プロキシ設定のためにポート8080で実行するようにapacheを構成する必要があります。

Apache Webサーバーのポートを変更する場合は、Apache構成ファイル「/etc/apache2/ports.conf」を編集してから、「/ etc / apache2 /sites-available/」の仮想ホスト構成に進む必要があります。 "ディレクトリ。

まず、vimエディターでファイル「ports.conf」を編集して、apacheのポートを8080に変更します。

vim /etc/apache2/ports.conf

オンライン5 、ポート80を8080に変更します。

Listen 8080

保存して終了します。

次に、virtualhostディレクトリに移動し、ファイル「000-default.conf」を編集します:

cd sites-available/
vim 000-default.conf

構成が以下と同じであることを確認してください:

<VirtualHost *:8080>

    ServerName www.reverse.com
    ServerAlias reverse.com

    ServerAdmin [email protected]
    DocumentRoot /var/www/html

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

保存して終了します。

次に、構成をテストし、apacheを再起動します:

apachectl configtest
systemctl restart apache2

最後に、apacheとphpが機能していることを確認します。ディレクトリ「/var/ www /html/」に「info.php」という名前の新しいファイルを作成します。

cd /var/www/html/
echo "<?php phpinfo(); ?>" > info.php

サイトにアクセスwww.reverse.com:8080/info.php

結果は上のスクリーンショットのようになります。

ステップ3-Nginxをインストールする

次のapt-getコマンドを使用してNginxをインストールします。

apt-get install nginx

ステップ4-Nginxを構成する

Nginxをインストールしたら、ポート8080で実行されているApacheWebサーバーのリバースプロキシとして機能するようにNginxを構成します。

nginx構成ディレクトリに移動し、ファイル「nginx.conf」を編集します:

cd /etc/nginx/
vim nginx.conf

gzip行のコメントを解除して、NginxのGzip圧縮を有効にします。

        # Gzip Settings
        ##

        gzip on;
        gzip_disable "msie6";

        gzip_vary on;
        gzip_proxied any;
        gzip_comp_level 6;
        gzip_buffers 16 8k;
        gzip_http_version 1.1;
        gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

最も重要なのは:

gzip on :gzip圧縮を有効にします。

gzip_types :圧縮を有効にするMIMEタイプのリストです。

gzip_proxied any :プロキシされたリクエストの圧縮を有効にします。

gzip設定のすぐ下に、次のプロキシキャッシュ設定を追加します。

        # Proxy Cache Settings
        proxy_cache_path /var/cache levels=1:2 keys_zone=reverse_cache:60m inactive=90m max_size=1000m;

プロキシキャッシュのディレクトリは/var/cacheです。

レベル キャッシュがファイルシステムにどのように保存されるかをNginxに指示するディレクティブです。

key_zone は単なるキャッシュゾーンの名前です。自由に選択できますが、名前に特別な文字や空白を追加しないでください。 「reverse_cache」という名前を使用します 「ここ。

保存して終了します。

次に、ディレクトリ「/ etc / nginx/sites-available」に仮想ホストを設定します。

このチュートリアルでは、「reverse.conf」という名前の新しい仮想ホスト構成ファイルを作成します。ディレクトリにアクセスして、vimで新しいファイルを作成します:

cd /etc/nginx/sites-available
vim reverse.conf

以下に設定を貼り付けます:

server {
    listen 80;

    # Site Directory same in the apache virtualhost configuration
    root /var/www/html; 
    index index.php index.html index.htm;

    # Domain
    server_name www.reverse.com reverse.com;

    location / {
        try_files $uri $uri/ /index.php;
    }


    # Reverse Proxy and Proxy Cache Configuration
    location ~ \.php$ {
 
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
        proxy_pass http://127.0.0.1:8080;

        # Cache configuration
        proxy_cache reverse_cache;
        proxy_cache_valid 3s;
        proxy_no_cache $cookie_PHPSESSID;
        proxy_cache_bypass $cookie_PHPSESSID;
        proxy_cache_key "$scheme$host$request_uri";
        add_header X-Cache $upstream_cache_status;
    }

    # Enable Cache the file 30 days
    location ~* .(jpg|png|gif|jpeg|css|mp3|wav|swf|mov|doc|pdf|xls|ppt|docx|pptx|xlsx)$ {
        proxy_cache_valid 200 120m;
        expires 30d;
        proxy_cache reverse_cache;
        access_log off;
    }

    # Disable Cache for the file type html, json
    location ~* .(?:manifest|appcache|html?|xml|json)$ {
        expires -1;
    }

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

保存して終了します。

次に、新しい仮想ホスト構成をアクティブ化します。

ln -s /etc/nginx/sites-available/reverse.conf /etc/nginx/sites-enabled/

最後に、nginx構成をテストし、nginxを再起動します:

nginx -t
systemctl restart nginx

Nginxは現在リバースプロキシとして構成されています。 curlでテストできます:

curl -I www.reverse.com

Cache-Control:no-cache index.htmlを意味し、.htmlで終わるすべてのファイルはキャッシュされません。

別のテスト:

curl -I www.reverse.com/info.php

X-Cache:HIT ページがNginxキャッシュによって提供されていることを意味します。

ステップ5-ロギングの構成

このステップでは、ローカルIPではなく訪問者の実際のIPをログに記録するようにapacheを構成します。

apacheモジュール「libapache2-mod-rpaf」をインストールし、モジュール構成ファイルを編集してください:

sudo apt-get install libapache2-mod-rpaf
cd /etc/apache2/mods-available/
vim rpaf.conf

10の行にサーバーIPを追加します 。私のサーバーのIPは192.168.1.108。です。

RPAFproxy_ips 127.0.0.1 192.168.1.108 ::1

保存して終了します。

ここでapacheを再起動します:

systemctl restart apache2

tailコマンドでapacheアクセスログを表示して、rpafをテストします。

tail -f /var/log/apache2/access.log

それだけです。

Nginxは、ApacheWebサーバーの前にリバースプロキシとしてインストールされます。訪問者がphpファイルを要求すると、その要求はポート8080でapacheに渡され、apacheログファイルで実際のIP訪問者を確認できます。

結論

Nginxは高速で人気のあるウェブサーバーであり、メモリ使用量が少なく、HTTPおよびHTTPSプロトコルのウェブサーバーおよびリバースプロキシとして機能します。 Apache用のNginxリバースプロキシは、フロントエンドとしてNginxを使用し、バックエンドとしてapacheを使用するセットアップです。 Nginxはブラウザからの着信リクエストを処理し、それをapacheバックエンドに渡します。このチュートリアルでは、PHPファイルのリクエストと画像をキャッシュするhttpキャッシュとしてnginxの構成を設定しました。


Ubuntu
  1. リバースプロキシとしてApacheを使用してUbuntu16.04にOdoo10をインストールする方法

  2. リバースプロキシとしてNginxを使用してUbuntu16.04にOdoo10をインストールする方法

  3. リバースプロキシとしてApacheを使用してUbuntu20.04にOdoo14をインストールする方法

  1. Ubuntu20.04でリバースプロキシとしてNginxを設定する方法

  2. リバースプロキシとしてNginxを使用してUbuntu20.04にFlectraをインストールする方法

  3. リバースプロキシとしてNginxを使用してUbuntu18.04にOdoo12をインストールする方法

  1. KibanaのNginxリバースプロキシを構成する方法

  2. リバースプロキシとしてNginxを使用してUbuntu16.04にOdoo11をインストールする方法

  3. リバースプロキシとしてApacheを使用してUbuntu18.04にOdoo12をインストールする方法