Продолжительное время на одном из серверов крутиться с десяток сайтов, все они подвержены риску взлома. Так как Apach+php стоит под Windows разграничить права на запись в ту или иную папку нет возможности. Обыкновенной командой можно вообще затереть все файлы на сервере.
Выход нашелся довольно таки простой, а что если разнести пользовательские сайты по виртуальным серверам. И уже если взломают один, то в приделах виртуального сервера пусть и «копашатся», дальше они не вылезут.
На сервер поставил Vmvare Server 2 vmware.com/products/server продукт бесплатный, необходимо лишь зарегистрироваться и на почту прийдет ключ. Позволяет создавать десятки виртуальных машин, управление происходит из под браузера, так что можно управлять серверами из любой точки мира.
Но, встает вопрос, сервера то виртуальны и в интернете они не видны, о них знает лишь главный сервер, на котором они собственно все крутятся, пробросить 80 порт невозможно серверов много да и занят он на основном.
А, решается все довольно просто, в Apache имеется модуль Прокси-сервера, собсвтвенно апач может выступать не только как web, но и proxy сервером, это возможностью я и решил воспользоваться.
Первым делом у регистратора доменного имени прописываем ИП нашего главного сервера, куда будут приходить все запросы.
На главном сервере в конфигурационном файле апача пропишем:
ProxyPass / site.com
ProxyPassReverse / site.com
Собственно в этих строчка мы даем понять апачу, что все запросы, котрые приходят для сайта site.com отправлять, используя встроенный проски сервер, на то же site .com. Но встает вопрос, получается зацикливание. Чтобы этого не было необходимо в файле c:/Windows/System32/drivers/etc/hosts дописать для этого сайта внутренний IP, скажем у меня это выглядит так:
Получается, что сначала запрос приходит на основной сервер, по внешнему ИП, потом уже апач смотрит, где есть site.com и получает IP, согласно правилам системы (игнорирует внешние ДНС) смотрит в hosts и запрашивает сайт у внутреннего виртуального сервера.
Выход нашелся довольно таки простой, а что если разнести пользовательские сайты по виртуальным серверам. И уже если взломают один, то в приделах виртуального сервера пусть и «копашатся», дальше они не вылезут.
На сервер поставил Vmvare Server 2 vmware.com/products/server продукт бесплатный, необходимо лишь зарегистрироваться и на почту прийдет ключ. Позволяет создавать десятки виртуальных машин, управление происходит из под браузера, так что можно управлять серверами из любой точки мира.
Но, встает вопрос, сервера то виртуальны и в интернете они не видны, о них знает лишь главный сервер, на котором они собственно все крутятся, пробросить 80 порт невозможно серверов много да и занят он на основном.
А, решается все довольно просто, в Apache имеется модуль Прокси-сервера, собсвтвенно апач может выступать не только как web, но и proxy сервером, это возможностью я и решил воспользоваться.
Первым делом у регистратора доменного имени прописываем ИП нашего главного сервера, куда будут приходить все запросы.
На главном сервере в конфигурационном файле апача пропишем:
<VirtualHost *:80>
ServerAdmin webmaster@site.com
DocumentRoot D:/www2/site/
ServerName site.com
ServerAlias www.site.com
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
ProxyPass / site.com
ProxyPassReverse / site.com
Собственно в этих строчка мы даем понять апачу, что все запросы, котрые приходят для сайта site.com отправлять, используя встроенный проски сервер, на то же site .com. Но встает вопрос, получается зацикливание. Чтобы этого не было необходимо в файле c:/Windows/System32/drivers/etc/hosts дописать для этого сайта внутренний IP, скажем у меня это выглядит так:
192.168.2.2 site.com
Получается, что сначала запрос приходит на основной сервер, по внешнему ИП, потом уже апач смотрит, где есть site.com и получает IP, согласно правилам системы (игнорирует внешние ДНС) смотрит в hosts и запрашивает сайт у внутреннего виртуального сервера.