3

私が基本的に達成しようとしているのは、メインのWebサイトでGoで記述されたCMSを実行することです。これはwww.example.comにあります。

www.example.com/clients/などのディレクトリにPHPで記述されたアプリケーションもあります。

Go組み込みWebサーバーを使用してexample.comを提供しながら、Apache / PHPを使用してexample.com/clientsを提供するにはどうすればよいですか?

4

2 に答える 2

4

Apache2を介しmod_proxyて、ローカルネットワーク内(サーバーがアクセスできる場合)を含め、ローカルホストまたはサーバーがアクセスできる他の場所のさまざまな宛先にさまざまなパスをプロキシできます。

このためには、以下の例のようにProxyPassProxyPass用のApache2 Docs、非常に便利な読み物)を使用します。

<VirtualHost *:80>
  ServerName some.example.host.xyz

  DocumentRoot /var/www/your-document-root

  Alias /clients/ /var/www/clients/
  ProxyPass /clients/ !
  ScriptAlias /something-using-cgi/ /var/www/cgi-stuff/
  ProxyPass /something-using-cgi/ !

  ProxyPreserveHost On
  ProxyPass / http://localhost:9876/
  ProxyPassReverse / http://localhost:9876/
  ProxyPass /elsewhere/ http://elsewhere.example.host.xyz:1234/
  ProxyPassReverse /elsewhere/ http://elsewhere.example.host.xyz:1234/
</VirtualHost>

外部ユーザーがリバースプロキシをフォワードプロキシとして使用できないように、プロキシセキュリティを設定する必要があります。ProxyRequests公式のApache2ドキュメントで説明されているようにそれを行うことができます。私がサーバーでこれを行った方法は、これをサーバー全体の構成に入れることです(これが十分に安全であることを自分で確認する必要があります):

# disables forward proxy
ProxyRequests Off
于 2012-05-18T10:40:36.983 に答える
4

Andrew Gerrandは、nginxについてこれについて優れたブログ投稿をしていますが、原則はApacheでも同じです。

Goアプリケーションに着信するリクエストのリバースプロキシとしてApacheを設定したいとします。Apacheの場合、 mod_proxyを確認します

于 2012-05-17T22:27:24.147 に答える