CentOS8 + Apache + Nginx + MariaDBでVPSサーバーに環境構築をする(#6:リバースプロキシサーバーの導入)
これまでの記事でウェブサーバーとデータベース、そしてバーチャルホストの設定を行い、本格的にウェブサイトやアプリケーションが利用できる環境が整ってきているのですが、今回はリバースプロキシサーバーを設けて、大量のリクエストにも耐えられるようにパフォーマンスを上げる方法についてまとめていきたいと思います。
リバースプロキシサーバーとは、クライアントとウェブサーバーの間にあるサーバーで、クライアントからのHTTP(HTTPS)リクエストを受けて、ウェブサーバーへ通信する役割を果たします。メリットとしては、たくさんのリクエストが発生した場合のパフォーマンスや高速処理などが挙げられます。現在はウェブサーバーに「Apache」を使っている状態ですが、ここにリバースプロキシサーバーとして新たに「Nginx」を加えた構成となります。
これでNginxを使ったリバースプロキシサーバーの環境構築が完成しました。Apacheでもウェブサーバーとしては利用できるわけですが、同時接続などでたくさんのリクエストを処理しないといけない場合にはNginxの方がパフォーマンスが良いようですね。VPSサーバーであれば自由に環境構築できるので、Apacheを利用されている場合には導入を検討しても良いのではないでしょうか。
1. リバースプロキシサーバーのインストール
下記コマンドでリバースプロキシサーバーの「Nginx」をインストールします。# dnf -y install nginxインストール後にはバージョンを確認しておきます。
# nginx -v nginx version: nginx/1.14.1続いてインストールしたNginxを起動していき、ステータスも確認します。
# systemctl start nginx # systemctl status nginx nginx.service - The nginx HTTP and reverse proxy server ............ Active: active (running)問題なく起動できていたら、Nginxの自動起動の有効化設定を行います。有効化したあとは念の為適用されているかも確認しておきます。
# systemctl enable httpd # systemctl list-unit-files -t service ............ nginx.service enabledここまでできたら「http://IPアドレス」にアクセスしてNginxのデモページが表示されるか確認します。

2. リバースプロキシの設定
続けてリバースプロキシの設定を行います。「/etc/nginx/conf.d/」に移動し、リバースプロキシ用の設定ファイルを任意の名前で作成(ここではreverse_proxy.confという名前で作成)します。# cd /etc/nginx/conf.d/ # vim reverse_proxy.confリバースプロキシ用の設定ファイルへ、下記のように使用するドメインに合わせてサーバーの指定を行い保存していきます。 【/etc/nginx/conf.d/reverse_proxy.conf】
server { listen 80; server_name example.com; location / { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:8080; proxy_redirect off; } } server { listen 80; server_name www.example.com; location / { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:8080; proxy_redirect off; } } server { listen 80; server_name example.net; location / { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:8080; proxy_redirect off; } } ............続いて「/etc/httpd/conf/」に移動し、Apache側のHTTP通信のポート番号を80→8080(任意のもの)に変更(必要に応じてhttpd.confのバックアップを行う)します。Nginx側のHTTP通信用のポート番号と被らないようにします。
# /etc/httpd/conf/ # vim httpd.confHTTPサーバーの設定ファイルでは、ポート番号を変更する形で編集を行います。 【/etc/httpd/conf/httpd.conf】
// 変更前 Listen 80 ............ ServerName localhost:80 ↓ // 変更後 Listen 8080 ............ ServerName localhost:8080同じく、「/etc/httpd/conf.d/」に移動し、バーチャルホストのポート番号も先ほど変更したものに合わせておきます。(必要に応じてバーチャルホスト設定ファイルのバックアップを行う)
# cd /etc/httpd/conf.d/ # vim vhost.confこちらも、ポート番号が重ならないように変更していきます。 【/etc/httpd/conf.d/vhost.conf】
// 変更前 <VirtualHost *:80> ............ ↓ // 変更後 <VirtualHost *:8080> ............下記のコマンドでHTTPサーバーとリバースプロキシサーバーを再起動させて設定を反映させます。
# systemctl restart httpd # nginx -s reload対象となるサイトにアクセスし、デベロッパーツールなどで読み込み後にレスポンスヘッダのServerの値を確認し、ApacheからNginxの表記に変わっていればOKです。

これでNginxを使ったリバースプロキシサーバーの環境構築が完成しました。Apacheでもウェブサーバーとしては利用できるわけですが、同時接続などでたくさんのリクエストを処理しないといけない場合にはNginxの方がパフォーマンスが良いようですね。VPSサーバーであれば自由に環境構築できるので、Apacheを利用されている場合には導入を検討しても良いのではないでしょうか。
sponserd
keyword search
recent posts
- Shopifyでのテーマ開発に便利なローカル環境を構築する#2:Shopify CLI
Shopifyでのテーマ開発に便利なローカル環境を構築する#2:Shopify CLI
- Shopifyでのテーマ開発に便利なローカル環境を構築する#1:Shopify Theme Kit
Shopifyでのテーマ開発に便利なローカル環境を構築する#1:Shopify Theme Kit
- Docker+Laravelでバックエンドの開発環境構築とウェブアプリケーション制作#7:動的ルーティングとデータベース更新処理
Docker+Laravelでバックエンドの開発環境構築とウェブアプリケーション制作#7:動的ルーティングとデータベース更新処理
- Docker+Laravelでバックエンドの開発環境構築とウェブアプリケーション制作#6:ミドルウェアの設定と認証ページ作成
Docker+Laravelでバックエンドの開発環境構築とウェブアプリケーション制作#6:ミドルウェアの設定と認証ページ作成
- Docker+Laravelでバックエンドの開発環境構築とウェブアプリケーション制作#5:ログイン認証機能の実装
Docker+Laravelでバックエンドの開発環境構築とウェブアプリケーション制作#5:ログイン認証機能の実装
- Docker+Laravelでバックエンドの開発環境構築とウェブアプリケーション制作#4:ログイン認証ユーザー作成
Docker+Laravelでバックエンドの開発環境構築とウェブアプリケーション制作#4:ログイン認証ユーザー作成
- Docker+Laravelでバックエンドの開発環境構築とウェブアプリケーション制作#3:静的ページの作成とルーティング
Docker+Laravelでバックエンドの開発環境構築とウェブアプリケーション制作#3:静的ページの作成とルーティング
- Docker+Laravelでバックエンドの開発環境構築とウェブアプリケーション制作#2:Laravelのインストール
Docker+Laravelでバックエンドの開発環境構築とウェブアプリケーション制作#2:Laravelのインストール
categories