У меня есть 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.
Я использую это для подключения к сайтам управления на моих серверах, не открывая их для интернета :)
надеюсь это поможет