web-dev-qa-db-ja.com

ProxyPass:ディレクトリURLを非標準ポートにリダイレクトします

私はGoogleを検索してきましたが、答えを見つけるのにあまり成功していません。 Ubuntuでサーバーを実行していて、さまざまな非標準ポートを使用するプログラムがインストールされています。それぞれが異なるポートを使用しており、私の場合、それらは9090、9091、9092、9093、および9094です。Apacheサーバーをセットアップし、IPアドレスを入力する代わりにサーバーに到達できるドメイン名を持っています。私が探しているのは、リストしたさまざまなポートを指すことができるディレクトリを作成する方法です。私は次のようなものが欲しい:

 https://www.mydomain.com/app1 
 https://www.mydomain.com/app2 
 http://www.mydomain.com/app3 

一部のポートはSSLを介しており、一部はそうではありません。自分の使いやすさを考慮して、ポートを順番(9090-9094)に配置しました。/app1でSSLポート9090をポイントし、/ app2でSSLポート9091をポイントし、/ app3で非SSLポート9092をポイントしたいのですが、簡単な方法はありますか?他の投稿に基づいてProxyPassなどを追加しようとしましたが、何も機能しません。新しいサイトを追加する必要がありますか?

また、これにファイルの編集が含まれている場合は、ファイルのデフォルトの場所と追加先をリストしていただければ幸いです。私はProxyPassを追加するように言っている投稿を見続けたので、それがVirtualHostの内部にあると想定しただ​​けでしたが、完全にはわかりませんでした。基本的に、私はWebサーバーのセットアップについてほとんど知りません。そのように扱われる必要があります。

間違ったタグをお詫び申し上げます。投稿を読むのにかかった時間と、提供できるヘルプに感謝します。

編集:明確にするために、アプリケーションはhttps://www.mydomain.com:9090などを介して既にアクセス可能です。https://www.mydomain.com/appNameを使用して、これらのアプリケーションによって公開された同じ場所/ページにアクセスする方法が欲しいのですが。

編集2:/ etc/Apache2/sites-available/defaultから

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${Apache_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${Apache_LOG_DIR}/access.log combined

    ProxyRequests Off
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>
    ProxyPass /app1 https://localhost:9090/
    ProxyPassReverse /app1 https://localhost:9090/
</VirtualHost>
13
Serneum

以下のApacheモジュールがインストールおよびロードされていることを確認してください。

mod_proxy
mod_proxy_http
mod_ssl

ルートとして次のコマンドを実行して確認できます(httpdが$ PATHにあると仮定)

httpd -t -D DUMP_MODULES

その後、構成を次のように変更してみてください。

ProxyRequests Off
<Proxy *>
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
</Proxy>
SSLProxyEngine on
ProxyPass /app1 https://localhost:9090
ProxyPassReverse /app1 https://localhost:9090

Mydomain.comがlocalhostを指していると仮定して、http://localhost/app1またはhttp://mydomain.com/app1にアクセスすると、プロキシが機能するようになります。

13