2016-03-09 1 views
6

Например, у меня есть сайт под доменом example.com. На этом сайте у меня есть страница example.com/hello. Теперь мне нужно указать мой второй домен hello.com на эту страницу example.com/hello. Это не должно быть перенаправлено. Посетитель должен оставаться в hello.com, но просмотреть содержимое со страницы example.com/hello. Это возможно? Можем ли мы это сделать в dns или nginx?Как указать домен на страницу другого веб-сайта?

Журнал доступа после использования прокси-пасс:

123.231.120.120 - - [10/Mar/2016:19:53:18 +0530] "GET/HTTP/1.1" 200 1598 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36" 
123.231.120.120 - - [10/Mar/2016:19:53:18 +0530] "GET /a4e1020a9f19bd46f895c136e8e9ecb839666e7b.js?meteor_js_resource=true HTTP/1.1" 404 44 "http://swimamerica.lk/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.$ 
123.231.120.120 - - [10/Mar/2016:19:53:18 +0530] "GET /9b342ac50483cb063b76a0b64df1e2d913a82675.css?meteor_css_resource=true HTTP/1.1" 200 73 "http://swimamerica.lk/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.262$ 
123.231.120.120 - - [10/Mar/2016:19:53:18 +0530] "GET /images/favicons/favicon-16x16.png HTTP/1.1" 200 1556 "http://swimamerica.lk/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36" 
123.231.120.120 - - [10/Mar/2016:19:53:19 +0530] "GET /images/favicons/favicon-96x96.png HTTP/1.1" 200 1556 "http://swimamerica.lk/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36" 
123.231.120.120 - - [10/Mar/2016:19:53:19 +0530] "GET /images/favicons/favicon-32x32.png HTTP/1.1" 200 1556 "http://swimamerica.lk/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36" 
123.231.120.120 - - [10/Mar/2016:19:53:19 +0530] "GET /images/favicons/android-icon-192x192.png HTTP/1.1" 200 1556 "http://swimamerica.lk/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36" 
+0

если 'hello' является режем Почему вы не настроить сервер для этого домена? –

+0

Здравствуйте, это страница ... Не простой html-сайт, у которого есть индекс, и в этом случае мы можем указать домен. Это сайт, построенный с помощью meteor :-( – THpubs

+0

Я думаю, вы должны просто указать на то же место, что и example.com, и написать правила перезаписи, которые переписывали бы url 'hello.com /(.*)' to './Hello/$ 1' –

ответ

5

Вы можете использовать proxy_passdirective. Просто создать новый сервер, связанный с доменом hello.com, а затем для location = / набор proxy_pass равен http://example.com/hello:

server { 
    server_name hello.com; 
    # ... 
    location =/{ 
     proxy_pass http://example.com/hello/; 
    } 

    # serve static content (ugly way) 
    location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml|rss|txt)$ { 
     proxy_pass http://example.com/hello/$uri$is_args$args; 
    } 

    # serve static content (better way, 
    # but requires collection all assets under the common root) 
    location ~ /static/ { 
     proxy_pass http://example.com/static/; 
    } 
} 

UPD: Вот точное решение для вашей ситуации:

server { 
    server_name swimamerica.lk; 

    location =/{ 
     proxy_pass http://killerwhales.lk/swimamerica; 
    } 

    # serve static content (ugly way) - added woff and woff2 extentions 
    location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml|rss|txt|woff|woff2)$ { 
     proxy_pass http://killerwhales.lk$uri$is_args$args; 
    } 

    # added location for web sockets 
    location ~* sockjs { 
     proxy_pass http://killerwhales.lk$uri$is_args$args; 
    } 
} 
+0

Спасибо, но одна проблема ... Сайт теперь пытается загрузить весь ресурс (js, css, image и т. Д.) В качестве домена hello. Пример: 'hello.com/main.js', но они находятся под' example.com/main.js'. Таким образом, сайт не загружается. – THpubs

+1

@THpubs, я обновил ответ. –

+0

Спасибо. Я пробовал, но все еще не работал – THpubs

-2

Используйте proxy_pass директивы. Просто создать новый сервер, связанный с доменом hello.com, а затем для location = / набора proxy_pass, равного http://domain.com/hello:

server { 
    server_name hello.com; 
    # ... 
    location =/{ 
     proxy_pass http://domain.com/hello/; 
    } 

    # serve static content (ugly way) 
    location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml|rss|txt)$ { 
     proxy_pass http://domain.com/hello/$uri$is_args$args; 
    } 

    # serve static content (better way, 
    # but requires collection all assets under the common root) 
    location ~ /static/ { 
     proxy_pass http://domain.com/static/; 
    } 
} 
Смежные вопросы