Porównaj ceny domen i usług IT, sprzedawców z całego świata

nginx: przekierowuj wszystkie żądania do serwera proxy, ale nie te trzy konkretne adresy URL


nginx może czasami być trudny:
chciałbym
  • przekierowuj wszystkie przychodzące żądania do
             www.sub.domain.com/*       
    do
             www.other.domain.com/*       
  • użyj serwera proxy, aby użytkownicy mogli nadal widzieć oryginał
             www.sub.domain.com       
    podczas przeglądania serwisu
  • dodaj wyjątek dla niektórych adresów URL (wszystkie tego samego typu):
             www.sub.domain.com/script       
    trzeba przekierować do
             www.yet.another.domain.com/www.sub.domain.com/new_script       
    przechowując wprowadzone dane POST dla skryptu. Z małą sztuczką, którą zawiera folder
             new_script       
    nazwany bezpośrednio po oryginalnej domenie.

To jest to co zrobiłem:
       server {
listen xx.xx.xx.xx:80;
root/var/www;
index index.html index.htm;
server_name www.sub.domain.com;
[code]   location/cms/ {
proxy_pass [url=http://yy.yy.yy.yy:8080;]http://yy.yy.yy.yy:8080;[/url]
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
} location/script {
proxy_pass [url=http://www.yet.another.domain.com/www.sub.domain.com/;]http://www.yet.another.domain. ... m/%3B[/url]
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
} location/{
proxy_pass [url=http://yy.yy.yy.yy:8080;]http://yy.yy.yy.yy:8080;[/url]
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host; rewrite ^/int/a.([a-zA-Z]+).([0-9]+)$/site/int/a?l=$1&i=$2 last;
rewrite ^(.*)$/site/$1 last;
}
[/code]
       }
Przy dostępie
       www.sub.domain.com/script
, To się stało:
       curl -I www.sub.domain.com/script
HTTP/1.1 301 Moved Permanently
Server: nginx/1.6.0
Date: Mon, 04 Aug 2014 04:12:23 GMT
Content-Type: text/html
Content-Length: 184
Location:

[url=http://www.sub.domain.com/script/]http://www.sub.domain.com/script/[/url]
[url=http://www.sub.domain.com/script/]http://www.sub.domain.com/script/[/url]
Connection: keep-alive
Wyświetla również błąd 404: „Nie znaleziono: żądany adres URL/www.sub.domain.com/ nie został znaleziony na tym serwerze”.
Gdzie jest mój błąd? Nie widzę tego. (A może jest to kilka błędów? Nie mam doświadczenia w przekierowaniach nginx).
Wielkie dzięki!
Zaproszony:

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się