Я прочитал все обсуждения на эту тему и решил безуспешно использовать метод Redirect в файле httpd.conf ... Итак, я вернулся сюда, к этой толпе знающих людей.
У нас есть служба, назовем ее "host1" (на основе https), которая работает на Centos 6.x. Мы решили добавить туда наш веб-сайт, чтобы использовать приобретенные SSL-сертификаты с подстановочными знаками, которые хорошо работают для двух доступов SSL при подключении https.
К сожалению, наш веб-сайт недоступен и время ожидания истекает, когда пользователь набирает ourdomain.com, www.ourdomain.com или использует http для ourdomain.com или www.ourdomain.com. Все отлично работает с https для ourdomain.com, www.ourdomain.com и host1.ourdomain.com.
Ниже вы найдете httpd.conf и ssl.conf, усеченные до областей виртуальных хостов в обоих и скрывающих наши конкретные детали.
Я получаю следующую ошибку от httpd с этой конфигурацией:
Этого больше не происходит, спасибо за подсказки Starting httpd: (98)Address already in use: make_sock: could not bind to address [::]:80
------------ Start httpd.conf ------------------
# >>httpd configuration truncated down to Virtual Hosts
#
# Use name-based virtual hosting.
#
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.ourdomain.com
Redirect permanent / https://www.ourdomain.com/
</VirtualHost>
------------ End httpd.conf ------------------
------------ Start ssl.conf to manage 443 and ssl certificates------------------
# >>SSL Configuration Truncated up to Listen 443 and Virtual Hosts
Listen 443
#Listen for virtual host requests on all IP addresses
NameVirtualHost *:443
# >>SSL Config ...
##
## SSL Virtual Host Context
##
<VirtualHost *:443>
DocumentRoot /var/www/html/dir1
ServerName host1.ourdomain.com
ServerAlias host1.ourdomain.com
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn
SSLEngine on
# >>SSL Certificates Config ... Truncated
</VirtualHost>
<VirtualHost *:443>
DocumentRoot /var/www/html/dir2
ServerName ourdomain.com
ServerAlias ourdomain.com www.ourdomain.com
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn
SSLEngine on
# >>SSL Certificates Config ... Truncated
</VirtualHost>
------------ End ssl.conf ------------------
В чем проблема ?? Я бы не хотел соглашаться с .htaccess, поскольку я хочу, чтобы AllowOverride All не влиял на нашу службу host1.
Спасибо.
Оли
----- Добавлен раздел для второго запроса netstat от ngn
# netstat -ant | grep 80
tcp 0 0 :::80 :::* LISTEN
----- Добавлен раздел для запроса lsof от Hbruijn - есть идеи?
# lsof -iTCP:80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd 24331 root 5u IPv6 5381394 0t0 TCP *:http (LISTEN)
httpd 24334 apache 5u IPv6 5381394 0t0 TCP *:http (LISTEN)
httpd 24335 apache 5u IPv6 5381394 0t0 TCP *:http (LISTEN)
httpd 24336 apache 5u IPv6 5381394 0t0 TCP *:http (LISTEN)
httpd 24337 apache 5u IPv6 5381394 0t0 TCP *:http (LISTEN)
httpd 24338 apache 5u IPv6 5381394 0t0 TCP *:http (LISTEN)
httpd 24339 apache 5u IPv6 5381394 0t0 TCP *:http (LISTEN)
httpd 24340 apache 5u IPv6 5381394 0t0 TCP *:http (LISTEN)
httpd 24341 apache 5u IPv6 5381394 0t0 TCP *:http (LISTEN)
httpd 25323 apache 5u IPv6 5381394 0t0 TCP *:http (LISTEN)
httpd 25325 apache 5u IPv6 5381394 0t0 TCP *:http (LISTEN)
httpd 25326 apache 5u IPv6 5381394 0t0 TCP *:http (LISTEN)
Новое дополнение к этому выпуску
Вот результаты httpd -S, все в порядке с точки зрения httpd. Но подключение к http: //ourdomain.com или http: //www.ourdomain.com останавливается во всех браузерах ... Перезапись с https вообще не работает.
wildcard NameVirtualHosts and _default_ servers:
*:80 is a NameVirtualHost
default server ourdomain.com (/etc/httpd/conf/httpd.conf:1032)
port 80 namevhost ourdomain.com (/etc/httpd/conf/httpd.conf:1032)
alias ourdomain.com
wild alias *.ourdomain.com
*:443 is a NameVirtualHost
default server host1.ourdomain.com (/etc/httpd/conf.d/ssl.conf:40)
port 443 namevhost host1.ourdomain.com (/etc/httpd/conf.d/ssl.conf:40)
alias host1.ourdomain.com
port 443 namevhost ourdomain.com (/etc/httpd/conf.d/ssl.conf:95)
alias ourdomain.com
alias www.ourdomain.com
Syntax OK
httpd.conf для порта 80
<VirtualHost *:80>
ServerName ourdomain.com
ServerAlias ourdomain.com *.ourdomain.com
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>
Для первой проблемы попробуйте настроить свой ServerAlias
переменная, чтобы включить следующее во все разделы виртуального хоста.
ServerAlias ourdomain.com *.ourdomain.com
Ссылка: http://httpd.apache.org/docs/2.4/mod/core.html#serveralias
В соответствии с ошибкой запуска, похоже, что предыдущий запуск не завершился должным образом, т.е. ваш вывод netstat & lsof показывает, что он все еще работает и прослушивает порт 80. Прежде чем вы попытаетесь запустить снова, убедитесь, что httpd еще не запущен, т.е. вам следует не вижу вывода для httpd при запуске lsof -iTCP:80