The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  вход/выход  слежка  RSS
"Проксирование с домена на домен без изменения URL в Nginx"
Вариант для распечатки  
Пред. тема | След. тема 
Форум WEB технологии (nginx)
Изначальное сообщение [ Отслеживать ]

"Проксирование с домена на домен без изменения URL в Nginx"  +/
Сообщение от Gular (ok) on 15-Июн-12, 12:54 
Приветствую,

Есть такой конфиг:

server {
listen 80;
server_name connect3.domain.ru www.connect3.domain.ru;

access_log /var/log/nginx/connect3.domain.ru.access.log;
error_log /var/log/nginx/connect3.domain.ru.error.log;

root /home/httpd/vhosts/html;
index index.html index.htm index.php;

location ~* \.(avi|bin|bmp|css|dmg|doc|docx|dpkg|exe|flv|gif|htm|html|ico|ics|img|jpeg|jpg|js|m2a|m2v|mov|mp3|mp4|mpeg|mpg|msi|pdf|pkg|png|pps|ppt|pptx|ps|rar|rss|rtf|swf|tif|tiff|txt|wmv|xhtml|xls|xml|zip)$ {
    root /home/httpd/vhosts/html;
    access_log off;
    expires 1d;
}

location ~ /\.(git|ht|svn) {
    deny all;
}

location / {
    #rewrite ^ http://connect2.domain.ru/;
    proxy_pass http://127.0.0.1:8080/;
    proxy_redirect off;
    proxy_hide_header "Cache-Control";
    add_header Cache-Control "no-store, no-cache, must-revalidate, post-check=0, pre-check=0";
    proxy_hide_header "Pragma";
    add_header Pragma "no-cache";
    expires -1;
    add_header Last-Modified $sent_http_Expires;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

Каким образом я могу перенаправить этот хост, connect3.domain.ru, на другой, connect2.domain.ru, не изменяя URL в адресной строке браузера? То есть, при запросе http://connect3.domain.ru должен открываться контент http://connect2.domain.ru , но адрес должен остаться http://connect3.domain.ru

Как можно увидеть, у меня закомментирована строка rewrite. С ней перенаправление, конечно, работает, но и адрес меняется, конечно. Надо использовать proxy_pass, подскажите, пожалуйста, как сделать правильно.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Проксирование с домена на домен без изменения URL в Nginx"  +/
Сообщение от PavelR (ok) on 15-Июн-12, 22:33 
быстрый ответ:

proxy_pass http://connect2.domain.ru;
proxy_set_header Host connect2.domain.ru;


Если возникнут  еще вопросы, не стесняйтесь, закройте этот форум и начните читать документацию и статьи о том, как работает HTTP.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Проксирование с домена на домен без изменения URL в Nginx"  +/
Сообщение от Gular (ok) on 16-Июн-12, 09:40 
> быстрый ответ:
> proxy_pass http://connect2.domain.ru;
> proxy_set_header Host connect2.domain.ru;
> Если возникнут  еще вопросы, не стесняйтесь, закройте этот форум и начните
> читать документацию и статьи о том, как работает HTTP.

Вопрос остался. :)

Я делал так (иначе не было бы этой темы), не работает. При запросе http://connect3.domain.ru адрес меняется на http://connect2.domain.ru

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Проксирование с домена на домен без изменения URL в Nginx"  +/
Сообщение от PavelR (ok) on 16-Июн-12, 21:10 
>> быстрый ответ:
>> proxy_pass http://connect2.domain.ru;
>> proxy_set_header Host connect2.domain.ru;
>> Если возникнут  еще вопросы, не стесняйтесь, закройте этот форум и начните
>> читать документацию и статьи о том, как работает HTTP.
> Вопрос остался. :)
> Я делал так (иначе не было бы этой темы), не работает. При
> запросе http://connect3.domain.ru адрес меняется на http://connect2.domain.ru

Когда прочитаете и поймете как работает HTTP, для дебага рекомендую tcpdump.

tcpdump -s 1500 -Aen -i eth0 host connect2.domain.ru and port 80

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Проксирование с домена на домен без изменения URL в Nginx"  +/
Сообщение от LSTemp (ok) on 18-Июн-12, 02:55 
>>> быстрый ответ:
>>> proxy_pass http://connect2.domain.ru;
>>> proxy_set_header Host connect2.domain.ru;
>>> Если возникнут  еще вопросы, не стесняйтесь, закройте этот форум и начните
>>> читать документацию и статьи о том, как работает HTTP.
>> Вопрос остался. :)
>> Я делал так (иначе не было бы этой темы), не работает. При
>> запросе http://connect3.domain.ru адрес меняется на http://connect2.domain.ru
> Когда прочитаете и поймете как работает HTTP, для дебага рекомендую tcpdump.
> tcpdump -s 1500 -Aen -i eth0 host connect2.domain.ru and port 80

как вариант предлагаю Вам сказать, что за сервер за нжинксом стоит и его конфиг засветить. тогда есть вариант, что кто-то поможет Вашей текущей проблеме и даст Вам время для см. выше.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Проксирование с домена на домен без изменения URL в Nginx"  +/
Сообщение от Gular (ok) on 18-Июн-12, 10:01 
>[оверквотинг удален]
>>>> Если возникнут  еще вопросы, не стесняйтесь, закройте этот форум и начните
>>>> читать документацию и статьи о том, как работает HTTP.
>>> Вопрос остался. :)
>>> Я делал так (иначе не было бы этой темы), не работает. При
>>> запросе http://connect3.domain.ru адрес меняется на http://connect2.domain.ru
>> Когда прочитаете и поймете как работает HTTP, для дебага рекомендую tcpdump.
>> tcpdump -s 1500 -Aen -i eth0 host connect2.domain.ru and port 80
> как вариант предлагаю Вам сказать, что за сервер за нжинксом стоит и
> его конфиг засветить. тогда есть вариант, что кто-то поможет Вашей текущей
> проблеме и даст Вам время для см. выше.

В качестве backend'а используется Apache 2.2.22. Конфиг виртуалхоста довольно банален.

NameVirtualHost 127.0.0.1:8080

<VirtualHost 127.0.0.1:8080>
    ServerName connect3.domain.ru
    ServerAlias www.connect3.domain.ru
    DocumentRoot /home/httpd/vhosts/html1
    CustomLog /var/log/httpd/connect3.domain.ru-access_log combined
    ErrorLog  /var/log/httpd/connect3.domain.ru-error_log
</VirtualHost>

<Directory "/home/httpd/vhosts/html1">
    Options -Indexes FollowSymLinks
</Directory>

Понятно, что можно сделать с помощью DNS и настройки веб-сервера, но это не вариант в данном случае, потому что нужно быстрое перенаправление.

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "Проксирование с домена на домен без изменения URL в Nginx"  +/
Сообщение от Gular (ok) on 21-Июн-12, 15:21 
>[оверквотинг удален]
>     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
> }
> }
> Каким образом я могу перенаправить этот хост, connect3.domain.ru, на другой, connect2.domain.ru,
> не изменяя URL в адресной строке браузера? То есть, при запросе
> http://connect3.domain.ru должен открываться контент http://connect2.domain.ru , но
> адрес должен остаться http://connect3.domain.ru
> Как можно увидеть, у меня закомментирована строка rewrite. С ней перенаправление, конечно,
> работает, но и адрес меняется, конечно. Надо использовать proxy_pass, подскажите, пожалуйста,
> как сделать правильно.

Отбой, вопрос решен.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

7. "Проксирование с домена на домен без изменения URL в Nginx"  +/
Сообщение от mjourist1 email on 14-Дек-16, 10:10 
>[оверквотинг удален]
>> }
>> }
>> Каким образом я могу перенаправить этот хост, connect3.domain.ru, на другой, connect2.domain.ru,
>> не изменяя URL в адресной строке браузера? То есть, при запросе
>> http://connect3.domain.ru должен открываться контент http://connect2.domain.ru , но
>> адрес должен остаться http://connect3.domain.ru
>> Как можно увидеть, у меня закомментирована строка rewrite. С ней перенаправление, конечно,
>> работает, но и адрес меняется, конечно. Надо использовать proxy_pass, подскажите, пожалуйста,
>> как сделать правильно.
> Отбой, вопрос решен.

Как решил?


Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру