У меня есть сервер NGINX с установленной Horde, чтобы я мог использовать веб-почту, и получаю две разные ошибки в зависимости от того, использую ли я http -или httpS.
У меня есть отладка установки в nginx, и я не склоняюсь к тому, что является источником ошибки.
Почтовые ошибки / журналы доступа не имеют ошибок.
Я успешно настроил Postfix и Dovecot (оба протестированы / подключены из telnet и Open_ssl из CLI).
Мои IP-порты открыты (по необходимости).
Http работает нормально (h — p: //www.mydomain.not/index.php).
HttpS делает НЕ работать с этим же URL.
HttpS загружает WebMail loginPage НО …
1. Страница не выглядит правильно. Это не похоже на то, что я делал, когда использовал Apache2, что наводит меня на мысль, что что-то неправильно обрабатывает PHP.
2. Я не могу войти через это WebMail страница входа, НО я могу войти используя Орда-test.php страница предоставлена Ордой.
Заметка: веб-почта h — p: //www.mydomain.not/webmail/авторизоваться.PHP
Орда-Test ч — р: //www.mydomain.not/webmail/тестовое задание.PHP
Так….
A) обычный логин (загружается, но не может войти)
(Ч — рS: //Www.mydomain.not/webmail/login.php)
B) Тестовая страница Horde-Mail (не-httpS) загружается, и вход в тест (ы) работает для всех imap / imapS и pop3 / pop3S в браузере.
ч — р: //www.mydomain.not/webmail/test.php
-тем не менее, тестовая страница входа не загружается вообще, если подключен к httpS
ч — рS: //www.mydomain.not/webmail/test.php
Н — рS будет загружаться, если набран определенный URL (h — pS: //www.mydomain.not/webmail/login.php), но я заметил, что страница является неточной в графическом плане. Структура страницы не похожа на страницу входа в Horde / Mail, которую я имел, когда использовал Apache2.
Когда я настраиваю перенаправление на http для принудительного использования https, главная страница веб-сайта не загружается «h — pS: //www.mydomain.not/index.php», но страница входа в веб-почту по-прежнему загружается … — но как прежде чем он не позволит мне войти в систему … продолжает выдавать мне «Ошибка ERR_CONNECTION_TIMED_OUT».
Наконец, я проверил, что мой конфигурационный файл php5-fpm «/etc/php5/fpm/pool.d/www.conf» оператор user / group (nginx) и оператор listen (listen = /tmp/php5-fpm.sock) ) согласуются с настройками в моей конфигурации nginx.conf «fastcgi_pass unix: /tmp/php5-fpm.sock;».
И я должен отметить, что у меня также есть prestashop, загруженный в корневой каталог веб-сайта, и нет никаких ошибок PHP с какой-либо его функциональностью … — но я не подаю на него никакой httpS в это время … просто http.
В итоге:
У меня есть ошибки при попытке использовать HTTPS.
1. httpS не будет загружать главную веб-страницу.
2. httpS загрузит страницу Horde_test. И инструменты тестирования успешно подключатся к imap / imaps / pop3 / pop3s.
3. http загрузит страницу входа в веб-почту, но выдает «Ошибка ERR_CONNECTION_TIMED_OUT».
Единственная известная ошибка, которую я получаю — это CLI после перезагрузки nginx всякий раз, когда я вносил изменения в nginx.conf (даже если я просто добавляю строку комментария и ничего больше не меняю!), Вот что происходит:
/etc/init.d/nginx: 2: /etc/init.d/nginx: синтаксическая ошибка: неожиданный перевод строки
-и, к сожалению, как только это происходит … даже обычная главная страница без httpS теперь выдает «ERR_TOO_MANY_REDIRECTS» … только перезагрузка снова запускает этот http.
Вот мой файл nginx.conf.
пользователь nginx
рабочий_процесс 4
pid varrunnginx.pid
События
рабочий_соединения 768
multi_accept on
error_log varlognginxdebuglog debug
HTTP
Basic Settingssendfile on
tcp_nopush on
tcp_nodelay on
keepalive_timeout 65
types_hash_max_size 2048
include etcnginxmime.types
default_type applicationoctet-stream
access_log varlognginxaccess.log
error_log varlognginxerror.log
сервер
слушай 80 слушай для ipv4 эта строка по умолчанию и подразумевается
прослушивать 80 по умолчанию ipv6only = при прослушивании ipv6
server_name mydomain.not *.mydomain.not
Force http to use httpS
NOTE I've turned this on ONLY to test...-same errors output for httpS noted in posting
rewrite ^ h--ps$http_host$request_uri? permanent force redirect http to https
HTTPS сервер
сервер
слушать 443
keepalive_timeout 70
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2
ssl_ciphers AES128-SHAAES256-SHARC4-SHADES-CBC3-SHARC4-MD5
ssl_prefer_server_ciphers on
SSL на
ssl_certificate etcnginxsslserver.crt
ssl_certificate_key etcnginxsslserver.key
имя_сервера mydomain.com * .mydomain.com
ssl_ciphers ALL!ADH!EXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv3+EXP
pass the PHP scripts to FastCGI server
location .php$
fastcgi_split_path_info ^(.+?.php)(.*)$
if (!-f $document_root$fastcgi_script_name)
return 404
fastcgi_pass 127.0.0.19000
fastcgi_pass unixvarrunphp5-fpm.sock
fastcgi_pass unixtmpphp5-fpm.sock
fastcgi_index index.php
include fastcgi_paramsroot usrsharenginxwwwwcrc
index index.php index.html index.htm
Я не использую порты прямой почтовой рассылки, указанные ниже, поскольку вместо этого я использую TLS через browserHorde-webmail.
почта
Смотрите пример скрипта аутентификации на
httpwiki.nginx.orgImapAuthenticateWithApachePhpScript
auth_http localhostauth.php
pop3_capabilities "TOP" "USER"imap_capabilities "IMAP4rev1" "UIDPLUS"
server
listen localhost110
protocol pop3
proxy onserver
listen localhost143
protocol imap
proxy on
ПОРТЫ ОТКРЫТЫ
$ sudo netstat -ntlp | grep LISTEN
tcp 0 0 0.0.0.0443 0.0.0.0 * LISTEN 1744nginx
tcp 0 0 0.0.0.0993 0.0.0.0 * LISTEN 938dovecot
tcp 0 0 0.0.0.0995 0.0.0.0 * LISTEN 938dovecot
tcp 0 0 127.0.0.13306 0.0.0.0 * LISTEN 985mysqld
tcp 0 0 0.0.0.0110 0.0.0.0 * LISTEN 938dovecot
tcp 0 0 0.0.0.0143 0.0.0.0 * LISTEN 938dovecot
tcp 0 0 0.0.0.080 0.0.0.0 * LISTEN 1744nginx
tcp 0 0 0.0.0.021 0.0.0.0 * LISTEN 831vsftpd
tcp 0 0 0.0.0.022 0.0.0.0 * LISTEN 800sshd
tcp 0 0 0.0.0.025 0.0.0.0 * LISTEN 1215master
tcp6 0 0 22 * СЛУШАТЬ 800sshd
Здесь было несколько вещей не так, и «ответы» еще не завершены.
Я вырезал почти все вещи fastcgi и поместил в базовый конфиг:
сервер {
имя_сервера example.org;
root / var / www / site;
место нахождения / {
try_files $ uri $ uri / /index.php;
}
location ~ .php $ {
включите fastcgi.conf;
fastcgi_pass unix: /tmp/php-fpm.sock;
}
}
Я вернулся к базовому веб-хостингу, и прямой путь вызовет каждую страницу, не относящуюся к httpS, указанную выше, но при обычном URL-адресе появляется ошибка 403-запрещенная. Поэтому я должен напечатать /index.php
Я обнаружил, что при загрузке скрипта из инструмента, который я хотел использовать, установлен Apache, который конфликтовал с моим доступом к порту 80 для nginx. -Установлено это, но все еще возникают обычные проблемы с URL.
Журналы ошибок показывают проблему с разрешениями. -Так я говорю, что этот пост пока решен как первопричина прав доступа.
Других решений пока нет …