Setup Nginx+Windows/IIS6+WordPress configuration on 1 public IP adress

Etter å ha puslet litt med vmware esxi 5  virtualisering av servere.
Ville eg ha en måte å kunne nå de eksternt gjennom 1 ip.

Google har mange fine veiledninger for å sette opp Nginx på forskjellige typer operativsystemer. (bla windows)
Skal ikkje gå gjennom installeringen av den, men har da satt opp Nginx på en helt vanlig ubuntu 11.10

Beskriver da i punkter suksess oppskrift som virket for meg.
Utgangspunkt vmware og 2003 og 2008 servere ferdig konfigurert med websider og mail som fungerer på hovedserver.
Innhold på andre servere kan kun nåes internt og ikkje eksternt med 1 ip.

Nginx

1. Når Nginx er installert på (proxy) server
er det hos meg i ubuntu under Home filesystem:
*a) etc/nginx/nginx.conf
*b) etc/nginx/site-available mappe med en default fil

Som windows mann var det ett lite h….. å finne ut av sudo osv. men fant ut av det.
Kopierte filene ut på skrivebordet så eg hadde en mal om eg gjorde noe galt.
Redigering av *a) om nødvending er å fjerne # for at ting skal virke.
Hemmligheten i versjon 1.0.15 av Nginx var å sette opp servere i *b)
Fjernet alt i *b) og satte opp dette:

Eksempel (oppsett i *b) server 1 og 2

server {
listen          80;
server_name     domain.com;

location / {
proxy_pass          http://(domain.com)internal IP:80;
proxy_set_header    Host        $host;
proxy_set_header    X-Real-IP   $remote_addr;
proxy_set_header    X-Forwarded-For     $remote_addr;
proxy_set_header    X-Originating-IP    $remote_addr;
proxy_set_header    HTTP_REMOTE_ADDR    $remote_addr;
proxy_set_header    REMOTE_ADDR         $remote_addr;
}
}

server {
listen          80;
server_name     sub.domain.com;

location / {
proxy_pass          http://(sub.domain.com) internal IP:80;
proxy_set_header    Host        $host;
proxy_set_header    X-Real-IP   $remote_addr;
proxy_set_header    X-Forwarded-For     $remote_addr;
proxy_set_header    X-Originating-IP    $remote_addr;
proxy_set_header    HTTP_REMOTE_ADDR    $remote_addr;
proxy_set_header    REMOTE_ADDR         $remote_addr;
}
}

Etter dette er lagt inn i default filen er det bare og restarte Nginx.

Router

2. Oppsett router. NAT (port forwarding) til fast IP
Sett port 80 til å gå til (proxy ubuntu) med IP internt
Sett ønsket port: i dette tilfellet port 8081 til å gå til translation port 80 til IP internt server 1 (domain.com)
Sett ønsket port: i dette tilfellet port 8082 til å gå til translation port 80 til IP internt server 2 (sub.domain.com)

3. Test!
Om alt er ok har du gjort det bra 🙂

Summary tests / Erfaringer.

Etter oppsett fungerte ikkje traffic statistikken lengre. Fikk bare opp intern ip adresse for nginx reverse proxy server.
Løsning : client ip adress nginx > IIS6 > WordPress.

Sett denne koden inn i wp-config.php rett etter <?php

if (isset($_SERVER[‘HTTP_X_FORWARDED_FOR’])) {
$ips = explode(‘,’, $_SERVER[‘HTTP_X_FORWARDED_FOR’]);
$_SERVER[‘REMOTE_ADDR’] = $ips[0];
}

No virker traffikk analysen som den skal og besøkendes ip adresse blir logget og vist :-)

 

2 Comments:

  1. I’m gone to inform my little brother, that he should also visit this webpage on regular basis to take updated from most recent news.

  2. Wow, that’s a really clever way of thninkig about it!

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

Dette nettstedet bruker Akismet for å redusere spam. Lær om hvordan dine kommentar-data prosesseres.