Часть 1. Настройка домашнего хостинга на FreeBSD
Для трансляции изображения с камеры из внутренней сети на сайт потребуется прокси модуль апача. Само вещание ведёт ContaCam 7.0(для Windows XP). Понравилось, что сразу и онлайн-вещание и возможность посмотреть записи обнаруженных движений. Вставил трансляцию на страницу с помощью фрейма: <iframe allowtransparency=»true» scrolling=»no» style=»border:1px solid #ededed» src=»http://webcam.site:8800″ frameborder=»0″ height=»750″ width=»750″>
Чтобы маршрут до DVR сервера апач выбрал через внутреннюю сеть, включаем mod_proxy. Это модуль Apache для перенаправления соединений (то есть, шлюз, пропускающий их). Он доступен для использования так же, как любой другой стандартный модуль или базовая конфигурация. В целом, mod_proxy – это не один модуль, а набор модулей, каждый из которых обладает особенными функциональными возможностями.
Некоторые из этих модулей:
- mod_proxy: основной прокси-модуль Apache, который управляет соединениями и перенаправляет их.
- mod_proxy_http: функции прокси-сервера для протоколов HTTP и HTTPS.
- mod_proxy_ftp: функции прокси-сервера для протокола FTP.
- mod_proxy_connect: тунеллирование SSL.
- mod_proxy_ajp: взаимодействие с протоколом AJP.
- mod_proxy_wstunnel: работа с веб-сокетами (например, WS и WSS).
- mod_proxy_balancer: кластеризация и балансировка нагрузки.
- mod_cache: кэширование.
- mod_headers: управление заголовками HTTP.
- mod_deflate: сжатие.
Примечание: чтобы получить дополнительную информацию о mod_proxy и Apache, читайте официальную документацию Apache.
Активация модулей
В httpd.conf раскомментировать нужные proxy модули Возможно апач попросит раскомментировать дополнительно модуль xml2enc
Также можно выполнить следующие команды, чтобы активировать модули по одному:
a2enmod proxy
a2enmod proxy_http
a2enmod proxy_ajp
a2enmod rewrite
a2enmod deflate
a2enmod headers
a2enmod proxy_balancer
a2enmod proxy_connect
a2enmod proxy_html
В файле конфигурации виртуальных хостов вставить блок кода:
<VirtualHost *:*>
ProxyPreserveHost On
# Servers to proxy the connection, or;
# List of application servers:
# Usage:
# ProxyPass / http://[IP Addr.]:[port]/
# ProxyPassReverse / http://[IP Addr.]:[port]/
# Example:
ProxyPass / http://0.0.0.0:8080/
ProxyPassReverse / http://0.0.0.0:8080/
ServerName localhost
</VirtualHost>
Активация балансировки нагрузки
При наличии нескольких внутренних серверов можно использовании функцию балансировки нагрузки Apache, чтобы распределить соединения при проксировании.
Отредактируйте настройки виртуального хоста (как в предыдущем разделе), используя следующие конфигурации:
<Proxy balancer://mycluster>
# Define back-end servers:
# Server 1
BalancerMember http://0.0.0.0:8080/
# Server 2
BalancerMember http://0.0.0.0:8081/
</Proxy>
<VirtualHost *:*>
# Apply VH settings as desired
# However, configure ProxyPass argument to
# use "mycluster" to balance the load
ProxyPass / balancer://mycluster
</VirtualHost>
Активация SSL для поддержки обратного прокси
При использовании сертификатов и соединений SSL нужно также активировать промежуточный виртуальный хост. Для этого используйте нижеприведенный блок кода.
Listen 443
NameVirtualHost *:443
<VirtualHost *:443>
SSLEngine On
# Set the path to SSL certificate
# Usage: SSLCertificateFile /path/to/cert.pem
SSLCertificateFile /etc/apache2/ssl/file.pem
# Servers to proxy the connection, or;
# List of application servers:
# Usage:
# ProxyPass / http://[IP Addr.]:[port]/
# ProxyPassReverse / http://[IP Addr.]:[port]/
# Example:
ProxyPass / http://0.0.0.0:8080/
ProxyPassReverse / http://0.0.0.0:8080/
# Or, balance the load:
# ProxyPass / balancer://balancer_cluster_name
</VirtualHost>
Перезапустить службу апача.
Теперь Apache будет проксировать соединения на внутренние серверы приложений.
Источник: https://www.8host.com/blog/ustanovka-http-servera-apache-kak-obratnogo-proksi-s-pomoshhyu-mod_proxy/