Synology NASにリバースプロキシを設定して他ホストのWebサーバを中継する | masao-Tec-blog

Synology NASにリバースプロキシを設定して他ホストのWebサーバを中継する

Synology NAS 応用

Webサーバを外部公開する場合、Webサーバで使用されるポート80ポート443は、ルーターのポートフォワーディングで1台のサーバに中継されます。
よって、Webサーバとしての役割を搭載できるホストはローカルネットワーク内で1台となりますが、ここにリバースプロキシを導入することにより、アクセスされるドメイン名(ホスト名)毎に別々のWebサーバに、外部からのリクエストを中継することが出来ます。
すなわち、Webサーバを物理的に分離することが可能となります。

スポンサーリンク

1.リバースプロキシとは

リバースプロキシとは、インターネットと内部ネットワークの間に配置され、インターネット側からのWebアクセス通信を受け付けて内部のWebサーバに中継する仕組みです。

Synology NASにはリバースプロキシの仕組みが搭載されているため、内部ネットワーク上に配置されたSynology NAS以外のホストのWebサーバに対し、Synology NASがWebアクセスを受け付けて、他ホストのWebサーバに中継させることが出来ます。

また、アクセスするドメイン名ごとに別々の中継先を設定することができます。

設定イメージ

本記事では、Synology NASのリバースプロキシ機能を設定して、Synology NASからローカルネットワーク上に配置した他ホスト(Ubuntu 20.04 LTS Server)に構築したWebサーバ(WordPress Webサイト)に外部からのドメイン名でのアクセスを中継する手順について紹介します。

さらに、WordPress Webサイトのアクセス時に、URLにWordPressのインストール先ディレクトリを含めずドメイン名だけでアクセスするために、Ubuntu ServerApacheのバーチャルホストを設定する手順について紹介します。

スポンサーリンク

2.Synology NASでのリバースプロキシ設定

2-1.リバースプロキシ規則の設定

DSM7.0のリバースプロキシ設定は、[コントロールパネル]>[ログインポータル]>[詳細設定]にあります。

[リバースプロキシ]をクリックすると、[リバースプロキシダイアログ]が表示されます。


[リバースプロキシダイアログ]上で[作成]を選択すると、[リバースプロキシ規則]ダイアログが表示されますので、このダイアログで必要事項を入力します。

プロキシ名を反転]は翻訳がおかしいですがリバースプロキシのことを示しているのだと思われます。

リバースプロキシ規則の名称を入れるイメージです。わかりやすい名前を入れればよいと思います。

Target]への入力項目は以下の通りです。

プロトコルHTTPまたはHTTPSを選択します。
HTTPSを選択する場合は、ホスト名(ドメイン名)をDNSへ登録し、SSL証明書の取得を済ましておく必要があります。
ホスト名リバースプロキシでWebサーバに中継するときの外部からのホスト名(ドメイン名)を入力します。
ポートポート番号を入力します。(HTTPだと80HTTPSだと443
HSTSを有効にする強制的に HTTPS 接続させる設定です。HTTPS化する場合はチェックを入れます。

送り先]への入力項目は以下の通りです。

プロトコルHTTPまたはHTTPSを選択します。リバースプロキシ側(インターネット側)の通信をHTTPS化する場合は、中継のプロトコルはHTTPを選択することでよいと思います。
ホスト名リバースプロキシで中継先のWebサーバのホスト名を入力します。ローカルネットワーク側でドメイン名でのアクセスが出来ない場合はIPアドレス入力でよいです。
ポートポート番号を入力します。(HTTPだと80HTTPSだと443

入力が完了したら、[保存]をクリックしてリバースプロキシ規則を保存します。

2.2.リバースプロキシ規則にSSL証明書の設定

インターネット側からアクセスするときのプロトコルをHTTPS化する場合はリバースプロキシ規則にSSL証明書の設定を行います。

コントロールパネル]>[セキュリティ]>[証明書]>[設定]をクリックし、設定ダイアログを表示します。

リバースプロキシ規則の設定で保存した名称が追加されていますので、[証明書] プルダウンメニューを選択し、インターネット側からアクセスする場合のホスト名(ドメイン名)に対応したSSL証明書を選択します。

OK]をクリックし設定を反映します。

3.Ubuntu 20.04 LTS Serverでのバーチャルホスト設定

リバースプロキシの設定により、インターネット側からのドメイン名でのアクセスを、ローカルネットワーク内の他ホストのWebサーバに中継することが出来るようになりましたが、Webサーバのドキュメントルートにアクセスするため、WordPresssサイトへのアクセスが
ドメイン名/WordPressインストールフォルダ名
となります。

これを[ドメイン名]だけでWordPresssサイトにアクセスできるよう、他ホスト(Ubuntu 20.04 LTS Server)のWebサーバでバーチャルホスト設定を行います。

以下の例は、インターネット側からのドメイン名が[masao-tec.com]、WordPressインストール先フォルダが[Webサーバのドキュメントルート/wordpress]としています。

3-1.バーチャルホストの設定ファイル作成

rootアカウントで実施します。

[/etc/apache2/sites-available]直下にバーチャルホストの設定ファイルを作成します。

設定ファイル名は何でもよいですが、管理しやすくするためにドメイン名を使用することとしました。(masao-tec.com.conf)

root@ubuntu002:~# vi /etc/apache2/sites-available/masao-tec.com.conf
# 新規作成
# バーチャルホストのドメインの設定
<VirtualHost *:80>
    DocumentRoot /var/www/wordpress
    ServerName masao-tec.com
    ServerAdmin masao@mail.com
    ErrorLog /var/log/apache2/masao-tec.com.error.log
    CustomLog /var/log/apache2/masao-tec.com.access.log combined
</VirtualHost>

3-2.バーチャルホストの設定ファイル有効化

作成したバーチャルホストの設定ファイルを有効化するため[a2ensite]コマンドをドメイン名を引数にして実行します。

本コマンド実行で/etc/apache2/sites-enabled/以下に設定ファイルのシンボリックリンクが張られます。

systemctl restart apache2]でWebサーバを再起動します。

root@ubuntu002:~# a2ensite masao-tec.com
Enabling site masao-tec.com.
To activate the new configuration, you need to run:
  systemctl reload apache2

root@ubuntu002:~# systemctl restart apache2

4.Webサイトの表示確認

ブラウザのURLに[ドメイン名]を入力してWebサイトにアクセスします。

WordPressのWebサイト画面が表示されればOKです。