Apache は特定の URL またはサブドメインを内部 IP にリダイレクトします。

Apache は特定の URL またはサブドメインを内部 IP にリダイレクトします。

私のホームネットワークのWebサーバーの横にgitlabサーバーが実行されています。私のWebサーバーからいくつかのドメインでApache2を実行します。 example.comもその一つです。私の目標は、ユーザーがexample.com/gitlabまたはgitlab.example.comにアクセスしたときにgitlabログインページを取得することです。実際、リダイレクトが特定のURLまたはサブドメインで発生するかどうかは関係ありません。私は多くのことを試しましたが、それらのどれも私には役に立ちませんでした(おそらく私は間違っていたかもしれません)。

私はまた、次の関連フォーラムの記事を読んだ。

しかし、私は現在実行中のものがありません。

私のもの基本プロファイル常にポート80をポート443(HTTPS)にリダイレクトするように設定します。

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com

    Redirect permanent / https://www.example.com/
    [...]
</VirtualHost>

だからこれは私です。example.com.conf今後:

<VirtualHost *:443>
    ServerName example.com
    ServerAlias www.example.com

    DocumentRoot /var/www/html/example.com

    SSLEngine on

    <FilesMatch "\.(cgi|shtml|phtml|php)$">
            SSLOptions +StdEnvVars
    </FilesMatch>
    <Directory /usr/lib/cgi-bin>
            SSLOptions +StdEnvVars
    </Directory>

    Include /etc/letsencrypt/options-ssl-apache.conf
    SSLCertificateFile /etc/letsencrypt/live/www.example.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/www.example.com/privkey.pem
</VirtualHost>

まずリダイレクトを試みます。URLから。私は以下を追加しました:

ProxyRequests Off
ProxyPass /gitlab http://192.168.0.115:80/
ProxyPassReverse /gitlab http://192.168.0.115:80/

これは正しく動作しませんが、URLを入力すると"404要求されたURL /users/sign_inがこのサーバーに見つかりません。"。 '/users/sign_in'は私のgitlabサーバーのログインページパスなので、少なくとも何かが動作しているようです。私にとって奇妙なことは、ルートを内部IPにリダイレクトすると機能することです。

ProxyRequests Off
ProxyPass / http://192.168.0.113:80/
ProxyPassReverse / http://192.168.0.113:80/

動作しますが、今は実際のウェブサイトにアクセスできなくなります。

その後、リダイレクトを試みます。サブドメインで。私は以下を追加しました:

<VirtualHost *:443>
    ServerName gitlab.example.com

    ProxyPass / http://192.168.0.113/
    ProxyPassReverse / http://192.168.0.113/
</VirtualHost>

しかし、私は受け取る「サイトにアクセスできません」。私はサブドメインも運営していません。

答え1

/ gitlabビットを削除するには、mod_rewriteを使用する必要があります。それは次のとおりです。

rewriteBase "/gitlab"
rewriteRule "^gitlab/(.*)" "http:/192.168.0.113/$1" [P]

バラよりhttps://httpd.apache.org/docs/2.4/rewrite/proxy.html

関連情報