Запретить пользователям доступ к веб-сайту через порт 8080 (apache) при использовании Varnish (через порт 80)
Моя конфигурация очень проста:
Чтобы избежать дублирования контента, я хочу, чтобы пользователь не заходил на мой сайт, напрямую нажимая apache (который работает на порте 8080).
Я настроил сервер Varnish, прослушивающий порт 80, поэтому я хочу использовать это только для того, чтобы бот не проиндексировал один и тот же веб-сайт на другом порту, что может вызвать проблему с дублированным содержимым.
Я использую выделенный сервер с Debian 6.
Мой виртуальный хост выглядит так:
<VirtualHost *:8080>
ServerAdmin webmaster@localhost
ServerName www.seek-team.com
DocumentRoot ...
DirectoryIndex app.php
<Directory "/var/www/seek-team.com/current/web">
Options -Indexes FollowSymLinks SymLinksifOwnerMatch
AllowOverride All
Allow from All
</Directory>
</VirtualHost>
Как запретить пользователю прямой доступ к сайту через порт 8080? (но я все еще нуждаюсь в лаке, чтобы поразить apache правильно).
Благодарю.
3 ответа
Вы можете привязать демон apache к интерфейсу обратной связи и заставить Varnish подключаться к localhost:80
, Таким образом, лак будет доступен для всего мира, в то время как apache будет доступен только локально.
Конфигурация лака:
backend www {
.host = “localhost″;
.port = “80″;
}
Конфигурация Apache:
Listen 127.0.0.1:8080
...
<VirtualHost 127.0.0.1:8080>
...
Просто заблокируйте порт 8080 с iptables для внешнего мира следующим образом:
# iptables -I INPUT -p tcp --dport 80 -j DROP
# iptables -I INPUT -s localhost -j ACCEPT
Самый быстрый вариант - просто привязать экземпляр Apache к Localhost, чтобы он был доступен только с этой машины.
<VirtualHost 127.0.0.1:8080>
В качестве альтернативы вы можете настроить разрешения вашего блока каталогов виртуального хоста Apache для:
Deny from all
Allow from 127.0.0.1 #IP.OF.MY.PC
Это немного более гибко, поскольку вы можете добавить свой собственный IP-адрес или диапазон сети в список разрешенных IP-адресов, чтобы разрешить нескольким прямым доступам для диагностических целей.
Оба варианта выше предполагают, что экземпляр Varnish работает на том же физическом сервере.