2016-02-01 9 views
5

長編ストーリー: 私たちはリモートのdevサーバを持っています。これにはいくつかのSymfony2インスタンスが含まれています。同様のexample.com/page1およびexample.com/page2は、異なるアプリケーションを持つ異なるAWSインスタンスです。これらの(すなわち/ページ1)の一つは、私の責任です。そして、私はそれをリモートで、そしてローカルで開発することができます。明らかにローカルでは最速の方法ですが、同様のドメインの下でアプリケーション全体が一度に動作する場合にリモートで開発する方が良い理由のリストがあります。ですから私はローカルのインスタンスを参照するためにexample.com/page1を作りたいので、FTP経由でCmd + Sごとにファイルを送信しません。私は私が必要なものはProxyPass別のポートを持つローカルURLに、正確なリモートURLをマップすることはできますか?

ProxyPass /app/ http://example.com/app/

でそれをやって、リモート1に、いくつかのローカルURLをマッピングすることができ、Apacheの設定から

は、まったく同じですが、その逆。

私はリモートでローカルに実行されている2つの同じWebアプリケーションを持っています。

リモートhttps://example.com:33333/app/

ローカルhttp://localhost:22222/app/

私はそれがこの方法で作業を取得する必要があります:

  • https://example.com:33333/homepage/ - >https://example.com:33333/homepage/
  • https://example.com:33333/app/ - >http://localhost:22222/app/

ブラウザのアドレスバーにリモートURLを保存します。

が可能

おそらくいくつかのクローム拡張、またはプロキシアプリケーション(ないリモート側にはProxyPassから)私の側でそれを設定することですか?

+0

それはあなたがこの下に必要なコンテキストをクリアしていません。これはローカルでの使用やショーケース(例えば、複数のコピー&ペーストの指示に従う)、エンタープライズ設定(たくさんの人にMitMしたい)、100%の自動拡張機能Google Chromeにアップロードします(もしそうなら、apacheタグとnginxタグを置き換えてください)。あなたは正確に何を達成しようとしていますか?既存の答えはどこで正確に短くなりますか? – cnst

+0

@cnst、私が解決したい問題を説明しましょう。私たちはリモートのdevサーバーを持っています。これにはいくつかのSymfony2インスタンスが含まれています。 example.com/page1とexample.com/page2のように、アプリケーションが異なるawsインスタンスが異なります。そのうちの1つ(つまり/ page1)が私の責任です。そして、私はそれをリモートで、そしてローカルで開発することができます。明らかにローカルでは最速の方法ですが、同様のドメインの下でアプリケーション全体が一度に動作する場合にリモートで開発する方が良い理由のリストがあります。ですから私はローカルのインスタンスを参照するためにexample.com/page1を作りたいので、FTP経由でCmd + Sごとにファイルを送信しません。 – Maksym

答えて

4

これは単純ではないし、プロキシパスとはまったく異なる。

ブラウザのブラウザでユーザーが「example.com」と入力すると、リクエストを送信する場所が決まりますが、nginxの設定は何の効果もありません。しかし、ブラウザはDNSを使用して意思決定を行い、それを妨害する可能性があります。

ユーザーを制御できる場合は、example.comドメインを上書きして、代わりにローカルサーバーに要求を送信することができます。あなたのローカルマシンだけの場合は、/ etc/hostsでそれを行うことができます。その後、nginx設定のserver_nameタグにexample.comを追加するだけで簡単です。

もう1つの可能性はルータの設定ですが、それはあなたのためのオプションではないと思います。

+0

こんにちは!答えてくれてありがとう。良い計画のように聞こえますが、具体的な例をお聞かせください。 – Maksym

0

私が正しくあなたの要求を理解していれば、これは私がnginxの中のすべての時間を行うものです:

私が持っている/して自分のWebサーバーと何にでも行くと「_」私のElasticsearchサーバに行きます(たとえば、/index/type/_search)、ドメイン全体が実際に複数のシステムになっているため、ドメイン名が統一され、SSL証明書のコストが下がります。

ここではサンプルnginxの設定ファイルです:

server { 
    listen 10.1.40.2:80; 

    #+ your example 
    location ~ /app { 
     #+ another server 
     proxy_pass  http://10.1.40.11:80; 
     proxy_redirect  off; 
     proxy_set_header Host $host; 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header X-Forwarded-Host $server_name; 
    } 

    #+ your example 
    location ~ /homepage { 
     #+ another server 
     proxy_pass  http://10.1.40.10:80; 
     proxy_redirect  off; 
     proxy_set_header Host $host; 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header X-Forwarded-Host $server_name; 
    } 

    location ~ /_ { 
     #+ different port 
     proxy_pass  http://127.0.0.1:9200; 
     proxy_http_version 1.1; 
     proxy_set_header Connection "Keep-Alive"; 
     proxy_set_header Proxy-Connection "Keep-Alive"; 
    } 

    location/{ 
     proxy_pass  http://127.0.0.1:80; 
     proxy_redirect  off; 
     proxy_set_header Host $host; 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header X-Forwarded-Host $server_name; 
    } 
} 
関連する問題