Назад | Перейти на главную страницу

Как настроить тестовую среду за VPN?

У меня есть Linode VPS, который я использую для размещения нескольких сайтов. Я запускаю Ubuntu 10.04 и Apache 2. Я бы хотел, чтобы мои действующие сайты (example-site.com) и тестовые сайты (test.example-site.com) находились в одном ящике, но имели test.example-site. com доступен только при подключении к моему VPS через VPN.

Я установил OpenVPN следующим образом Инструкции Линоде и могу подключиться, но я не уверен, как настроить Apache для этого. Как мне настроить Apache, чтобы разрешить доступ только к тестовым сайтам при подключении к VPN, но разрешить любому доступ к действующим сайтам?

Пусть определения виртуального хоста в Apache прослушивают разные интерфейсы.

Скажем, интерфейс OpenVPN - 10.8.0.101. В этом случае в определении виртуального хоста test.example.com установите VirtualHost 10.8.0.101:80. Точно так же для www.example.com настройте его на прослушивание основного интерфейса с помощью чего-то вроде VirtualHost 192.168.1.1:80 или любой другой IP-адрес интерфейса eth0.

Я предполагаю, что вы используете здесь Linux / BSD, хотя я считаю, что вы можете сделать то же самое с ssh для Windows.

Другой способ просто использует ssh (я использую авторизованные ключи, а не пароли)

VARS заменить на свой вариант

$PORT = The port you wish to set this up on
$YOURSITE = The directory your test site resides in
$YOURTESTURL = The url of your test site
$USER = the user you have setup to ssh into your server with
$YOURSERVER = the ip or url of your server

Конфигурация apache на вашем сервере

<VirtualHost 127.0.0.1:$PORT>
  DocumentRoot /var/www/$YOURSITE/
  ServerName $YOURTESTURL
</VirtualHost>

теперь в вашем терминале введите

 ssh -L $PORT:127.0.0.1:$PORT $USER@$YOURSERVER

Теперь откройте в браузере страницу $ YOURTESTURL: $ PORT.

Я использую это для подключения к сайтам управления на моих серверах, не открывая их для интернета :)

надеюсь это поможет