http:// localhost:30 で自分のリポジトリ(Gitalistインスタンス)を表示するようにWebサーバーをセットアップし、nginxを使用してプロキシをセットアップしたいと思います。
DOMAIN/git /のようなURIを受け取ったときに、リクエストがリポジトリビューにプロキシされるようにしたい。
現在のnginx構成は次のように宣言されています。
location /git {
proxy_pass http://localhost:3000/;
}
リクエストはサーバーにプロキシされますが、 " http:// localhost:3000/logo.png "をポイントしているため、画像/リンクやCSSは解決できません。
[〜#〜]編集[〜#〜]
実際のサーバーアドレスにproxy_passした場合、機能します。
location /git {
proxy_pass http://192.168.1.111:3000/;
}
しかし、プロキシを行う際に実際のサーバーアドレスを隠す方法が必要です。
URIが絶対的な場合、解決策はNginx HTTPSubModule を使用するか、その mod_proxy_html モジュールでApacheに切り替えることです。どちらもバックエンドサーバーから受信した応答を変更し、いくつかの置換を行うことができます。
Nginx wikiにある解決策を試してください:
http://wiki.nginx.org/LikeApache
結果は次のようになります。
location /git {
proxy_set_header X-Forwarded-Host $Host;
proxy_set_header X-Forwarded-Server $Host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://192.168.1.111:3000/;
}
リクエストで送信されたホストヘッダーを使用して絶対リンクを生成している場合は、次のように追加して 次にNginx を設定して、元のホストヘッダーの値に設定します。
proxy_set_header Host $http_Host;
ロケーションブロックに。
パスが適切にプロキシされていません。このリンクを参照してください:
http://www.ubuntugeek.com/using-nginx-as-a-reverse-proxy-to-get-the-most-out-of-your-vps.html
アプリケーションがグラフィックス/スクリプト/ページへの絶対パスを含むHTMLを生成し、ブラウザがそれを要求する場合、アプリケーションもブラウザも/git
パスでアプリケーションを非表示にしようとしていることを認識していないため、ブラウザはそれらをロードしようとします絶対パス。 NginxがHTMLを書き換えることができればアイデア全体は機能しますが、機能しません。