1

私のApache 2構成には、VirtualHost次のようなものがあります。

<VirtualHost *:80>
  ServerName sub.domain.com

  # username:password sent on to endpoint
  RequestHeader set Authorization "Basic dXNlcm5hbWU6cGFzc3dvcmQ=="

  ProxyPass        /xyz http://192.168.1.253:8080/endpoint
  ProxyPassReverse /xyz http://192.168.1.253:8080/endpoint

  <Location /xyz>
    # This needs to let users through under the following circumstances
    #   * They are in 192.168.1.0/24
    #   * They have a valid user in a htpasswd file

    # So what goes here?
  </Location>
</VirtualHost>

ネットワーク上の別のサーバー (エンドポイントと呼びます) へのリバース プロキシとして仮想ホストを使用しています。

sub.domain.comネットワークブラウジング内のユーザーが自動的にエンドポイントにサービスを提供できるようにする構成を見つけようとしています。ただし、ネットワーク外のユーザーには資格情報の入力を求める必要があります

エンドポイントには、RequestHeader (必要) を使用して非表示にしたパスワードが必要です。外部ユーザーにプロンプ​​トを表示する必要があるパスワードは DIFFERENT であり、ファイルからユーザー リストを取得する BasicAuth である必要がありhtpasswdます。

4

3 に答える 3

6
<Location /xyz>
  # This needs to let users through under the following circumstances
  #   * They are in 192.168.1.0/24
  #   * They have a valid user in a htpasswd file

http://httpd.apache.org/docs/2.2/mod/core.html#satisfyからすぐに:

  Require valid-user
  Order allow,deny
  Allow from 192.168.1
  Satisfy any

もちろん、AuthUserFileやその他のディレクティブも含める必要があります

  AuthType basic
  AuthName "yadayadayada"
  AuthUserFile /foo/bar/blah/.htpasswd
</Location>
于 2009-02-24T00:54:21.250 に答える
0

2つのvhostを作成できます。1つは外部インターフェイスでリッスンし、もう1つはローカルです。認証設定は前者になります。

于 2009-02-24T00:55:57.737 に答える
0

DavidはApache2の構成をかなりうまくカバーしていると思いますが、分割DNSを使用して内部ユーザーと外部ユーザーに異なるサービスを提供することも一般的です。内部ユーザーは(表面上は)「エンドポイント」に直接アクセスできるため、プロキシからリクエストを行う理由は実際にはありません。

内部ユーザーがパブリックIPアドレスの1つに接続している場合、実際にルーティングの遅延や輻輳が発生する可能性があります。元々、私は2つのDNSサーバーに別々のハードウェアを使用するのが好きでしたが、最近、バインド「ビュー」を使用して2つのユーザークラスに異なるゾーンを提供するように切り替えました。

于 2009-02-24T01:48:02.540 に答える