Frequently Asked Questions
Question
Apache proxy или как сделать доступным сайт в локалке и из локалки и снаружи по имени
Answer
Имеется сервер в локальной сети, на нем живут кучка сайтов. Доступ к интернету осуществляется через сервер *nix. Все сайты подвешены на доменные имена, привязанные к внешнему ип адресу который прописан на сервере *nix. Не буду останавливаться на проблеме проброса портов снаружи внутрь и обеспечения НАТ для локального веб сервера. Основная задача состоит в том чтобы пользователи локальной сети могли без прописывания в hosts ип адреса веб сервера на каждое доменное имя сайта, спокойно ходить на него вне зависимости от того где находятся, снаружи или в локалке. Для этого импользуется режим proxy в установленном на *nix сервере apache. Собирается apache версии 2* с модулями прокси, затем правится файл httpd-vhosts.conf, в котором указываются разрешения для использования прокси
<Proxy *> ## описываем что пользоваться прокси-сервером можно только локалке
Order deny,allow
Deny from all
Allow from 192.168.1.0/24
</Proxy>
и потом ниже описываем виртуалхосты со всеми своими доменами, перенаправляя их на ип веб сервера:
<VirtualHost *:80 >ServerName чтототам.ru
ProxyPreserveHost on
ProxyPass / http://192.168.1.2:80/
DefaultType text/html
ErrorLog /var/log/httpd/server_error_log
CustomLog /var/log/httpd/server_access_log combined
</VirtualHost>
Чтобы модули заработали, нужно чтобы в конфиге httpd.conf апача было, помимо прочего, вот это:
LoadModule rewrite_module libexec/apache22/mod_rewrite.so
LoadModule proxy_module libexec/apache22/mod_proxy.so
LoadModule proxy_balancer_module libexec/apache22/mod_proxy_balancer.so
LoadModule proxy_connect_module libexec/apache22/mod_proxy_connect.so
LoadModule proxy_http_module libexec/apache22/mod_proxy_http.so
LoadModule proxy_ftp_module libexec/apache22/mod_proxy_ftp.so
Все. Теперь снаружи на сайты будут ходить по проброшенным портам средствами НАТ, изнутри через прокси апача.
Details
Info Sunday 17 May 2015 - 21:13:45 by vampyr
Vampyr`s House!