Переслать локальный сервер memcached на порт 12111 на сервер domain.com memcached
Мои клиенты запускают много скриптов, использующих memcached, но все они используют localhost в качестве адреса. Моему локальному серверу сейчас не хватает оперативной памяти, потому что он делает много других вещей, таких как WWW и MySQL серверы.
Теперь у меня есть новый сервер с 16 ГБ оперативной памяти, который я могу использовать в качестве выделенного сервера memcached. Как перенаправить localhost:12111 на сервер domain.com:12111?
Я не могу переключить localhost на что-то другое в /etc/hosts, потому что все мои базы данных используют такой адрес.
1 ответ
Приложите усилие, 1 минута поиска в Google даст вам ответ.
Ни в каком конкретном порядке вы не могли бы использовать:
- Xinetd
- Rinetd
- IPTables
- SSH туннель
- Netcat
- Уровень 4-7 балансировки (например, haproxy)
Или выполните простой grep для localhost и замените его именем хоста, которое вы можете изменить.
Iptables
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -j MASQUERADE
iptables -t nat -A PREROUTING -d 127.0.0.1 -p tcp --dport 11211 -j DNAT --to 192.168.1.2:11211
iptables -P FORWARD ACCEPT
rinetd
echo " 127.0.0.1 11211 192.168.1.2 11211" >> /etc/rinetd.conf
/etc/init.d/rinetd restart
Netcat
nc -l -p 11211 -c "nc 192.168.1.2 11211"
SSH
ssh user@192.168.1.2 -L 11211:192.168.1.2:11211
Xinetd
cat > /etc/xinet.d/memfw << eof
service memfw {
disable = no
type = UNLISTED
socket_type = stream
protocol = tcp
user = nobody
wait = no
redirect = 192.168.1.2 11211
port = 11211
}
eof