
У меня проблема с машиной Apache+Wordpress (Debian). По умолчанию он слушает через порт 80, я изменил его и теперь "слушает" через порт 9090.
/etc/Apache2/ports.conf
[...]
NameVirtualHost *:9090
Listen 0.0.0.0:9090
[...]
/etc/apache2/sites-available/default
[...]
<VirtualHost *:9090>
[...]
Когда я попытался получить доступ через http://10.250.10.70:9090
y, ничего не получилось. (Ошибка Chrome: ERR_CONNECTION_REFUSED
)
Если я попробую на той же машине, то wget http://10.250.10.70:9090/ -O -
получу следующий вывод:
--2015-05-14 12:31:43-- http://10.250.10.70:9090/
Connecting to 10.250.10.70:9090... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://10.250.10.70/ [following]
--2015-05-14 12:31:43-- http://10.250.10.70/
Connecting to 10.250.10.70:80... failed: Connection refused.
Если я тоже слушаю через порт 80, но не меняю /etc/apache2/sites-available/default
/etc/Apache2/ports.conf
[...]
NameVirtualHost *:9090
Listen 0.0.0.0:9090
Listen 0.0.0.0:80
[...]
WebSite работает через порт 80 (на самом деле я не знаю почему, потому что NameVirtualHost должен работать только с портом 9090). Также, если я получаю доступ через порт 9090, работает, но перенаправляет на тот же URI с портом 80. Если я снова запускаю через веб-сервер, wget http://10.250.10.70:9090/ -O -
я получаю этот ответ:
--2015-05-14 12:38:16-- http://10.250.10.70:9090/
Connecting to 10.250.10.70:9090... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://10.250.10.70/ [following]
--2015-05-14 12:38:16-- http://10.250.10.70/
Connecting to 10.250.10.70:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: `STDOUT'
[<=> ] 0 --.-K/s <!DOCTYPE html>
[...]
Во-первых, я не знаю, почему VirtualHost работает через порт 80, а во-вторых, почему эта система перенаправляет весь прослушиваемый мной трафик (в данном случае 9090) на порт 80...
Я полностью "потерялся"
Спасибо вам всем
ПРИМЕЧАНИЕ:
root@TWBLOG:~# apache2 -v
Server version: Apache/2.2.22 (Debian)
Server built: Dec 23 2014 22:48:29
решение1
Скорее всего, проблема в брандмауэре. Откройте порт 9090 с помощью этого:
sudo iptables -A INPUT -p tcp --dport 9090 -j ACCEPT
Если вы используете UFW:
sudo ufw allow 9090
Если вы хотите перенаправить все запросы с порта 80 на порт 9090:
sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 9090
решение2
Приложение (WordPress) генерирует перенаправление — вам следует проверить конфигурацию WordPress и настроить его базовый URI так, чтобы он отражал новый порт, через который вы к нему обращаетесь.
См. также документацию WordPress по изменению настроек:http://codex.wordpress.org/Изменение_URL_сайта
Когда Apache получает запрос, который не соответствует <VirtualHost>
определению, он использует значение по умолчанию, которое является первым (или единственным), которое он находит. Это должно объяснить, почему запросы, поступающие на порт 80, по-прежнему попадают на VirtualHost для WordPress.
Наконец, проверьте, разрешает ли брандмауэр на компьютере подключения к новому порту прослушивания, если у вас возникают проблемы с подключением с внешних компьютеров.