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の構成を設定しました。