Redirect https下带301重定向的Nginx反向代理

Redirect https下带301重定向的Nginx反向代理,redirect,nginx,proxy,reverse-proxy,Redirect,Nginx,Proxy,Reverse Proxy,我是Nginx的新手,我的目标是: 当我访问127.0.0.1:8080/proxy/git/或Https://127.0.0.1/proxy/git/,Nginx(反向)代理可以 我的nginx配置是: http { server { listen 8080 default backlog=2048; listen 443 ssl; server_name 127.0.0.1; ssl_certificate /etc/ngin

我是Nginx的新手,我的目标是:

当我访问
127.0.0.1:8080/proxy/git/
Https://127.0.0.1/proxy/git/
,Nginx(反向)代理可以

我的nginx配置是:

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;
当我在我的chrome地址栏中输入或时,我得到了一个301重定向,地址变成了,我想它变成了直接访问,但我想要代理访问,下面是一张图片:

然而,当我重定向到http&静态网站时,一切正常

我在网站上搜索了很多,有人说这是因为
proxy\u redirect
,我测试了
proxy\u redirect/
或将其删除,并更改
代理设置\头主机$Host
进入
代理设置\头主机$http\u主机但所有这些都没有意义

特别是,如果我同时删除了
proxy\u重定向
行并将
$host
更改为
$http\u hosts,
如下所示:

        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;
看来这对我和我自己都有好处

所以,我的问题是:

  • 有人能告诉我如何在127.0.0.1下将代理反向到github吗?(假设我在一个必须使用这种反向代理的地方)

  • 如果你能用简单的话来解释我们为什么要这样做,那你真是太好了,我也想知道原因

  • 我的英语很差,为了清楚起见,我们可以把github称为“目标服务器”或“目标网站”,把127.0.0.1称为“代理服务器”或“nginx”吗


  • 真诚地感谢任何想帮助我的人

    我找到了原因

    Github需要Https和主机:Github.com

    proxy\u set\u头主机$http\u主机
    无法帮助您更改此主机头,应使用
    proxy\u set\u header host$proxy\u host取而代之。这将把主机头更改为github