Utilizza proxy inversa nginx per il reindirizzamento

Ho un dominio ab (ad esempio) e desidero servire alcune pagine di github ( username.github.io/project ) in ab/c . Significa anche che desidero mantenere il mio URL del browser ad ab/c e mostrare i contenuti di username.github.io/project .

Ho le seguenti impostazioni nel module nginx

  • Come posso get Nginx per passare l'authentication a IIS come un proxy inverso?
  • Domini multipli Nginx
  • Come configurare Apache come proxy SSL per un server di applicazioni?
  • Nginx: Come distriggersre completamente la richiesta di buffer del corpo
  • Nginx reverse proxy + URL riscrivere
  • Codice di stato nella direttiva nginx try_files
  •  location /c { proxy_pass http://username.github.io/project; proxy_redirect http://username.github.io http://ab; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_buffering off; } 

    se cambio proxy_set_header Host $http_host a proxy_set_header Host $proxy_host o $host , si reindirizza solo a http://username.github.io/project che non è inteso per. Come posso fare?

  • Nginx rewite regola l'errore 403
  • Gli script PHP vanno fuori, ma le pagine regolari sono ingannevoli
  • Nginx ignora la richiesta HTTP 1.0 del client e risponde da HTTP 1.1
  • I blocchi di posizione di nginx possono corrispondere a una string di query URL?
  • Nginx: reindirizza http a https
  • Blocco Nginx per domini multipli per redirect tutto il traffico a https?
  • 2 Solutions collect form web for “Utilizza proxy inversa nginx per il reindirizzamento”

    Basta submit l'intestazione Host corretta al tuo target proxy rimuovendo la proxy_set_header Host $http_host .

    Se ab è configurato come un nome server nel block di server, non è neppure bisogno di proxy_redirect direttiva proxy_redirect se si utilizza una barra di traccia nel prefisso di posizione e nel target di proxy_pass come spiegato nella documentazione:

     Syntax: proxy_redirect default; proxy_redirect off; proxy_redirect redirect replacement; Default: proxy_redirect default; Context: http, server, location 

    […]

    La sostituzione predefinita specificata dal parametro predefinito utilizza i parametri delle direttive di posizione e proxy_pass. Di conseguenza, le due configurazioni seguenti sono equivalenti:

     location /one/ { proxy_pass http://upstream:port/two/; proxy_redirect default; } location /one/ { proxy_pass http://upstream:port/two/; proxy_redirect http://upstream:port/two/ /one/; } 

    [….]

    Quindi, questo dovrebbe farlo:

     server { server_name ab; location /c/ { proxy_pass http://username.github.io/project/; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_buffering off; } } 

    uso

     proxy_redirect off; 

    Quindi le impostazioni saranno

     location /c { proxy_pass http://username.github.io/project; proxy_redirect http://username.github.io; proxy_set_header Host username.github.io; proxy_set_header X-Host username.github.io; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_buffering off; } 
    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.