7

nginxリバース プロキシ目的で Synology NASのフロント サーバーを使用したいと考えています。目標は、NAS をホストするさまざまな Web サーバーで使用される非標準のポート番号にファサードを提供することです。nginxポート80でリッスンする必要があります。そうしないと、これらすべてが意味をなさないでしょう。

ただし、DSM は、Apacheポート 80 で既にリッスンしているサーバーを備えた状態で出荷されます。これが行うことは、実にばかげています。NAS Web マネージャー (DSM) へのエントリ ポイントであるポート 5000 にリダイレクトするだけです。

私がやりたいのは、この機能を無効にして、nginxサーバーでポート 80 を使用できるようにすることです。これどうやってするの ?

4

3 に答える 3

1

終わり !トリッキーでしたが、今では問題なく動作しています。これが私がやった方法です。

以下はsshでNASに接続する必要があり、製品の保証を維持したい場合はお勧めできません(完全に安全なIMHOですが)

TL;DR80 : 次のファイルで、出現するすべての portを非標準のポート (たとえば、 )に置き換えます8080。これにより、ポートが解放80され、必要に応じて使用できるようになります。

  • /etc/httpd/conf/httpd.conf
  • /etc/httpd/conf/httpd.conf-user
  • /etc/httpd/conf/httpd.conf-sys
  • /etc.defaults/httpd/conf/httpd.conf-user
  • /etc.defaults/httpd/conf/httpd.conf-sys

これらのファイルのサブセットを変更するだけでおそらく十分であることに注意してください (最初のファイルは実際には他のいくつかのファイルから計算されていることがわかりました)。のファイルを変更するだけで十分だと思います/etc.defaults/が、そうでない場合、最悪のシナリオはこれらすべてのファイルを変更することであり、問​​題はありません。

これが完了したら、NAS を再起動することを忘れないでください。


私がどのように知ったかに興味がある人のために

私は Linux ファイルシステムにはあまり詳しくなく、Apache構成についてはさらに詳しくありません。しかし、起動プロセスを処理するスクリプトが にあることは知っていました/etc/initApacheリダイレクトを実行していたサーバーは、確かにそこから起動されます。

  • これは私が手を汚さなければならなかったところです。cat <filename> | grep 80ポート番号を80.

  • その直感は功を奏し/etc/init/httpd-user.conf、その行が含まれていましたecho "DocumentRoot \"/usr/syno/synoman/phpsrc/web\"" >> "${HttpdConf}" #port 80 to 5000。ビンゴ!

  • ファイルの先頭を見ると、HttpdConf変数が を参照していることがわかりました/etc/httpd/conf/httpd.conf。これは、実際の構成が行われた場所です。

そこからは、Apache構成について何も知らない John Snow にとっても、比較的簡単です。トリックは、起動時にいくつかのテンプレートからインスタンス化されたことに気付くことhttpd.confでした (したがって、このファイルを変更するだけでは十分ではありませんでした)。find / -name "*httpd.conf*"をいくつかと組み合わせて実行すると、grep 80変更するファイルのリストが表示されました。

振り返ってみると、これはもちろん明らかです。しかし、Synology が私たちにもっと柔軟性を与えてくれたらいいのにと思います。

于 2015-05-22T22:06:24.860 に答える