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サーバーに転送されます。
SSHを使用してubuntuサーバーにログインし、次のコマンドを実行してrootユーザーになります。
sudo su
次に、apt-getコマンドを使用してapacheをインストールします。
apt-get install apache2
apacheをインストールしたら、このチュートリアルのapacheモジュールとしてPHPをインストールする必要があります。
apt-get install php5 php5-mysql libapache2-mod-php5
デフォルトでは、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 。
結果は上のスクリーンショットのようになります。
次のapt-getコマンドを使用してNginxをインストールします。
apt-get install 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キャッシュによって提供されていることを意味します。
このステップでは、ローカル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の構成を設定しました。