2016-09-11 10 views
0

下リダイレクト:私は127.0.0.1:8080/proxy/git/またはHttps://127.0.0.1/proxy/git/を訪問したときにnginxのリバースプロキシ私は、私の目的は、というnginxので新たに追加されています。https

、nginxの(リバース)プロキシがhttps://github.com

私にそれを作ることができます

私が入力したり、私のクロムのアドレスバーに、私は301リダイレクトを持って、アドレスが、私はそれが直接訪問になったと思いますが、私は、プロキシ訪問たい、となりました
http { 

    server { 
    listen 8080 default backlog=2048; 
    listen 443 ssl; 

    server_name 127.0.0.1; 

    ssl_certificate /etc/nginx/xxxxxxx.crt; 
    ssl_certificate_key /etc/nginx/xxxxxxx.key; 

    location /proxy/git/ { 
     proxy_pass https://github.com/; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_pass_header Server; 
     proxy_redirect off; 

     proxy_set_header Host $host; 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Scheme $scheme; 

     } 
     error_page 500 502 503 504 /50x.html; 
    } 

    ## 
    # Basic Settings 
    ## 

    sendfile on; 
    tcp_nopush on; 
    tcp_nodelay on; 
    keepalive_timeout 65; 
    types_hash_max_size 2048; 
    # server_tokens off; 

    # server_names_hash_bucket_size 64; 
    # server_name_in_redirect off; 

は、ここにある:nginxのconfには打撃であります写真:

enter image description here

私は、HTTP &静的なWebサイトにリダイレクトする場合しかし、それはOKです。

私はウェブサイトから多くのことを検索しました、誰かがproxy_redirectが、私はproxy_redirect//;にそれをテストしたか、それを削除し、proxy_set_header Host $http_host;proxy_set_header Host $host;を変更するが、すべては意味をなさないしているからだと言います。特別

、私は両方のproxy_redirect行を削除し、以下のように$http_hosts,$hostを変更した場合:

 proxy_pass https://github.com/; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_pass_header Server; 
     #proxy_redirect default; 

     proxy_set_header Host $http_host; 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Scheme $scheme; 

自分自身と自分beteewn 301を尽くすようだ???

enter image description here

だから、私の質問は:

  1. 誰もが私は127.0.0.1の下にgithubのためにプロキシを逆にすることができますどのように私に言うことはできますか? (私がこの種のリバースプロキシを使用する必要がある場所を想像してください)

  2. 簡単な言葉を使って私たちがそれをするべき理由を説明することができれば、とても良いことです。

  3. 私の英語が順番になるよう私たちは、「ターゲット・サーバー」または「ターゲットのウェブサイト」githubのを呼び出すことができ、それを明確にするために、および「プロキシサーバー」または「nginxの」

  4. 127.0.0.1呼び出し、非常に悪いです

私を手伝ってくれて誠にありがとうございます!

答えて

1

私はその理由を発見しました。

GithubにはHTTPSとHOSTを必要とします:github.com

proxy_set_header Host $http_host;ではなくproxy_set_header Host $proxy_host;を使用する必要があり、あなたはこのホストヘッダーを変える手助けすることはできません。これにより、ホストヘッダーがgithubに変更されます。

関連する問題