Domanda

Attualmente utilizzo il mio server Web locale per consentire ai clienti di visualizzare in anteprima alcune applicazioni e anche per consentire il download di "build notturne" della mia libreria open source.

Il problema è che ho cambiato il mio ISP e ora la mia porta 80 è bloccata.

Anche se so che potrei facilmente cambiare la porta sul server Apache, vorrei evitarlo a meno che non ci siano alternative.

Conosci qualche servizio di terze parti (gratuito o a pagamento) che farebbe un port forwarding al mio sito Web, rendendolo trasparente per qualcuno che vi accede?

Un'altra idea di cui ho sentito parlare era usare la riscrittura mod dal mio attuale host web per riscrivere nel mio dominio, ma preferirei anche non seguire questo percorso. Oltre a questo, conosci qualche esempio .htaccess che funziona davvero? Ho provato questo:

RewriteEngine on
RewriteRule ^/(.*) http://www.example.com:8080/$1

Ma non sembra funzionare.

È stato utile?

Soluzione

  

Quello che vorrei è che il cliente lo facesse   genere    http://myaddress.com/hello/there?a=1&b=2   e viene tradotto in    http://mylocalserver.com:8080/hello/there?a=1& b = 2   e di nuovo al cliente su a   modo trasparente.

Credo che questa sia la Apache RewriteRule che stai cercando per reindirizzare qualsiasi URL:

RewriteRule ^(.*)$ http://mylocalserver.com:8080$1 [R]

Da quel momento in poi il cliente navigherà mylocalserver.com:8080 ed è quello che vedranno nella barra degli indirizzi. Se cosa intendi con " e viceversa " è che pensano ancora di navigare in myaddress.com , quindi stai parlando di un server proxy di riscrittura.

Con questo intendo che dovresti riscrivere tutti gli URL non solo nelle intestazioni HTTP ma anche nel tuo contenuto HTML (es. fare una ricerca / sostituzione regex sull'HTML), e decodificare, riscrivere e inviare di nuovo GET, POST , Anche i dati PUT. Una volta ho scritto un simile proxy e lascia che ti dica che non è un esercizio banale, sebbene il principio possa sembrare semplice.

Direi, sii felice se riesci a far funzionare il reindirizzamento e lasciali navigare mylocalserver.com:8080 da quel momento in poi.

Altri suggerimenti

" e di nuovo al cliente in modo trasparente " .... saranno curati da NAT quindi non dovrebbe essere un problema.

Per gestire la traduzione della richiesta da una stringa all'altra, questo è un problema poiché è necessario trasformare la richiesta prima che raggiunga il server. Cerca una sorta di servizio di inoltro URL

http://www.dnsexit.com/Direct.sv?cmd=webforward

Inoltre puoi configurare un sito separato su un server provider e inoltrare le richieste all'indirizzo / link specifico sul tuo server.

Spero che questo aiuti!

Con la porta 80 bloccata, il routing tramite Dynamic Service non sarà di aiuto, a meno che il client non specifichi la nuova porta nel dominio.

Avere il router locale " port-forward " traffico da una nuova porta (diciamo 8080) alla porta 80. Lascia tutto uguale alla tua estremità.

Crea un account con DynDNS.org e imposta il tuo servizio dinamico. Quindi fai fare al tuo cliente http://mydomain.com:8080

Questo dovrebbe fare il trucco

Guarda ancora il suggerimento di Rolf in quanto non sono un vero ISP, .... sul serio.

Grazie

Se non riesci a far aprire il tuo ISP alla porta 80 e non puoi cambiare ISP, usa la direttiva di reindirizzamento htacccess:

Reindirizzamento 301 / http://yourserver.com:8000/

Gli utenti potrebbero notare il reindirizzamento, ma probabilmente non se ne cureranno.

Beh, anche se ho apprezzato le risposte, non ero abbastanza soddisfatto del risultato finale. Volevo che le mie modifiche all'ISP fossero trasparenti per i miei clienti e penso di essere riuscito a farlo funzionare.

Ecco cosa ho fatto:

Ho assunto un server VPS economico - VPSLink - e ho scelto il suo piano più economico: 64 MB di RAM, 2 GB di HD e 1 GB traffico mensile. Dopo uno sconto del 10% a vita era solo $ 7,16 al mese, abbastanza conveniente per il lavoro e ottieni un server VPS sandbox come bonus. L'hosting sembra finora così buono - nessun problema. Se vuoi provare, puoi registrarti dal suo sito, indicato sopra o tramite un codice di riferimento. Ci sono molti gruppi disponibili su Internet, devi solo cercare. Inoltre, posso facilmente crearne uno per te, se vuoi, lascia un commento su questa risposta: avrai uno sconto del 10% e io un mese gratis. Non pubblicherò direttamente qui perché potrebbe sembrare che questa fosse l'intenzione dietro questo post - che non lo era.

Questo account non è gestito ma fornisce l'accesso come root. Ho quindi configurato apache per fungere da proxy per le mie richieste sulla porta 80, inoltrandole in modo trasparente al mio sito Web locale sulla porta 8081.

Di seguito sono riportati alcuni frammenti dei file di configurazione httpd.conf del mio Apache.

Configurazione del server VPS:

<VirtualHost *:80>
    ServerName mydomain.com
    ServerAlias www.mydomain.com *.mydomain.com
    RewriteEngine On
    RewriteCond %{HTTP_HOST} (.*)\.mydomain\.com [NC]
    RewriteRule (.*) http://mylocalserverdns.mydomain.com:8081/%1$1 [P]
</VirtualHost>

Questa richiesta è come http://subdomain1.mydomain.com/script?a=b da inoltrare in modo trasparente sul lato server a http: // mylocalserverdns. mydomain.com:8081/subdomain1/script?a=b , quindi posso fare quello che voglio da lì.

Sul mio server locale, ho fatto la stessa cosa per distribuire il gestore dei miei sottodomini. Ho, ad esempio, due applicazioni server Java che funzionano localmente sulle porte 8088 e 8089. Tutto quello che dovevo fare era un altro proxy forward, ora internamente

Configurazione del server locale:

<VirtualHost *:8081>
    ServerName mylocalserverdns.mydomain.com

    ProxyPass /app1 http://127.0.0.1:8088
    ProxyPassReverse /app1 http://127.0.0.1:8088
    ProxyPassReverse /app1 http://mylocalserverdns.mydomain.com:8088/app1

    ProxyPass /app2 http://127.0.0.1:8089
    ProxyPassReverse /app2 http://127.0.0.1:8089
    ProxyPassReverse /app2 http://mylocalserverdns.mydomain.com:8089/app2
</VirtualHost>

Spero che valga la pena se qualcun altro sta cercando la stessa alternativa.

Penso che la maggior parte dei servizi DynamicDNS consenta il port forwarding.

Chiedi al tuo ISP perché questo è, e se non ricevi una risposta, cambia nuovamente ISP.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top