2013-03-16 10 views
6

Sto cercando di creare un sito Web statico semplice e ho un problema con nginx che è complicato da una serie di cose, in particolare il fatto che il mio ISP blocca tutto il traffico in entrata 80 della porta.Nginx hide numero porta inoltrata

Per prima cosa, ho configurato il web forward in modo che www.mysite.com reindirizzi a mysite.com:8000, quindi ho configurato il router per inoltrare la porta 8000 al mio server su cui gira nginx. Questo aggira il blocco del mio ISP sulla porta 80. Ora sto provando ad avere nginx sul proxy del server la richiesta sulla porta 8000 a un host virtuale sulla porta 80, in modo che il sito venga visualizzato come mysite.com dopo che carica piuttosto di mysite.com:8000.

Ho cercato di farlo con la direttiva proxy_pass di nginx, ma non importa quello che faccio il sito si presenta sempre come mysite.com:8000.

Ecco quello che ho finora:

server { 
    listen [::]:8000 

    server_name mysite.com; 

    location/{ 
    proxy_pass http://127.0.0.1:80; 
    proxy_redirect default; 
    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_set_header X-Forwarded-Proto http; 
    } 
} 

server { 
    listen 127.0.0.1:80; 

    server_name mysite.com; 

    root /var/www/homepage; 
    index index.html; 

    . 
    . (non-relevant stuff) 
    . 
} 

Link al sito vero e proprio: http://www.bjacobel.com

Ho anche provato a farlo inoltrando la porta 8000 presso il router alla porta 80, e avendo nginx ascolta sulla porta 80, ma l'url con: 8000 in esso appare ancora.

Grazie per il vostro aiuto!

risposta

3

La radice della problema non è con tua configurazione, ma con il primo nastro in avanti - funziona reindirizzando l'URL richiesto (http://www.yoursite.com) al nuovo URL (http://yoursite.com:8000)

quindi questo è già in atto, quando raggiunge la richiesta la tua configurazione e non puoi cambiarla di nuovo alla porta 80, come da tua disposizione lo blocca.

È possibile utilizzare un set di frame come uno spedizioniere ("Web 0.5") o convivere con esso.

2

Word of warning, l'hosting di server Web pubblici su una connessione residenziale è normalmente contro i Termini di servizio dei provider di servizi Internet.

Il browser mostrerà sempre 8080 perché la connessione HTTP deve essere avviata sulla porta 8080 per accedere al sito. Pensa ai problemi di sicurezza se potresti "nascondere" parte dell'URL.

L'unica soluzione è quella di ospitare un server proxy o un sito web incorniciato su un server che si può accedere sulla porta 80. Inoltre, ci sono i servizi di reindirizzamento che potrebbero reindirizzare la porta 80 per 8080.