Перенаправление обращения к сайту на локальный IP

G
На сайте с 15.09.2015
Offline
15
2009

Добрый день! На сервер с внешним IP обращаются к сайту, например site0ru, нужно перенаправить запрос на локальный виртуальный сервер.

Это можно сделать правилом iptables?

Если да то как его прописать?

Если нет, то как сделать проксирование nginx?

nigmatic
На сайте с 19.05.2017
Offline
3
#1

location / {

proxy_pass http://LOCALIP:80; #локальный IP адрес сайта

proxy_read_timeout 60;

proxy_set_header Host $http_host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header realip $remote_addr; #

}

G
На сайте с 15.09.2015
Offline
15
#2

Архитектура сети такова, что на одном IP много сайтов. Но, надо их разнести на разные локальные ВМ. Это правило будет работать только на одном сайте. Мне надо переадресацию сделать не по IP а по имени домена.

---------- Добавлено 07.06.2017 в 16:55 ----------

nigmatic:
location / {
proxy_pass http://LOCALIP:80; #локальный IP адрес сайта
proxy_read_timeout 60;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header realip $remote_addr; #
}

Стоп, или я не так понял.

Как объяснить, что site1 надо кинуть на 192.168.0.3

А site2 на 192.168.0.4

Оптимизайка
На сайте с 11.03.2012
Offline
396
#3
Goltsev:

Как объяснить, что site1 надо кинуть на 192.168.0.3
А site2 на 192.168.0.4

несколько разделов server {} каждый со своим server_name

https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-server-blocks-virtual-hosts-on-ubuntu-16-04

⭐ BotGuard (https://botguard.net) ⭐ — защита вашего сайта от вредоносных ботов, воровства контента, клонирования, спама и хакерских атак!
V
На сайте с 18.03.2013
Offline
90
#4

Попробуйте

iptables -t nat -A PREROUTING -d www.site1.com -j DNAT --to-destination 192.168.0.3

iptables -t nat -A PREROUTING -d www.site2.com -j DNAT --to-destination 192.168.0.4

iptables -t nat -A POSTROUTING -j MASQUERADE

Оптимизайка
На сайте с 11.03.2012
Offline
396
#5
VPSprima:
Попробуйте

А если у обоих веб сайтов один IP?

G
На сайте с 15.09.2015
Offline
15
#6
VPSprima:
Попробуйте

iptables -t nat -A PREROUTING -d www.site1.com -j DNAT --to-destination 192.168.0.3
iptables -t nat -A PREROUTING -d www.site2.com -j DNAT --to-destination 192.168.0.4
iptables -t nat -A POSTROUTING -j MASQUERADE

Спасибо, что ответили. Но, при добавлении ошибка синтаксиса. Я через ISP Добавлял

---------- Добавлено 08.06.2017 в 13:56 ----------

Оптимизайка:
А если у обоих веб сайтов один IP?

Да все верно, у нескольких сайтов может быть один внутренний IP

---------- Добавлено 08.06.2017 в 13:57 ----------

Очень хочет эту проблему решить вот тут

https://yadi.sk/i/59UnLveE3JwDmk

ValdisRu
На сайте с 02.10.2006
Offline
139
#7

вам нужен nginx (а не iptables) с его помощью можно проксировать сотни сайтов, физически расположенных на разных серверах

Обалденный заработок на социальных сетях (https://goo.gl/Qtsq6M)
A
На сайте с 19.07.2010
Offline
130
#8
Оптимизайка:
несколько разделов server {} каждый со своим server_name

есть еще другой вариант, при помощи map.

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

upstream av3 {

server 192.168.0.3:80;
keepalive 30;
}
upstream av4 {
server 192.168.0.4:80;
keepalive 30;
}
upstream av5 {
server 192.168.0.5:80;
keepalive 30;
}


map $host $http_backend {
default "av3";
"~domain.com" "av4";
"domain.ru" "av5";
"~domain.net" "av5";
}

server {
listen 80 default;
server_name _;
location / {
# Keep-Alive
proxy_http_version 1.1;
proxy_set_header Connection "";

proxy_pass http://$http_backend;
...
}
}
.............
G
На сайте с 15.09.2015
Offline
15
#9

Всем спасибо

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий