0

我有一个安装了 Horde 的 NGINX 服务器,因此我可以使用 webmail,并且根据我使用的是 http - 还是 - httpS 会收到两个不同的错误。我已经在 nginx 中设置了调试,并且没有任何关于错误来源的倾向。邮件错误/访问日志没有错误。我已经成功设置了 Postfix 和 Dovecot(都从 telnet 和 Open_ssl 从 CLI 测试/连接)。我的 IP 端口是打开的(根据需要)。

Http 工作正常(h--p://www.mydomain.not/index.php)。Http S不适用于同一个 URL。

Http S确实加载了webmail loginPage 但是... 1. 页面看起来不正确。它看起来与我使用 Apache2 时所做的完全不同,这让我相信某些东西没有正确处理 PHP。2.我不能直接通过这个webmail登录页面登录,但是我可以使用Horde提供的Horde-TEST.php页面登录。 注意:webmail h--p://www.mydomain.not/webmail/ login .php Horde-Test h--p://www.mydomain.not/webmail/ test .php

所以.... A)常规 loginPage(加载,但无法登录)(h--p S ://www.mydomain.not/webmail/login.php) B)Horde-Mail 测试页面(非 httpS ) 确实加载并且测试登录对浏览器中的所有 imap/imapS 和 pop3/pop3S 都有效。h--p://www.mydomain.not/webmail/test.php

- 但是,如果切换到 httpS h--p S ://www.mydomain.not/webmail/test.php ,测试登录页面根本不会加载

如果输入了特定的 URL(h--pS://www.mydomain.not/webmail/login.php),H--p S将加载 - 但我注意到该页面的图形不准确。该页面的结构看起来不像我使用 Apache2 时的 Horde/Mail 登录页面。

当我为 http 设置重定向以强制 https 时,主网站页面未加载“h--pS://www.mydomain.not/index.php”,但网络邮件登录页面仍然加载...-但作为在它不允许我登录之前...不断给我“错误 ERR_CONNECTION_TIMED_OUT”。

最后,我验证了我的 php5-fpm 配置文件“/etc/php5/fpm/pool.d/www.conf”用户/组语句(nginx)和监听语句(listen = /tmp/php5-fpm.sock ) 与我的 nginx.conf 配置“fastcgi_pass unix:/tmp/php5-fpm.sock;”中的设置一致。

我应该提一下,我还在根网站目录中加载了 prestashop,并且它的任何功能都没有 PHP 错误......但我此时也没有起诉任何 httpS......只是 http。

总之:尝试使用 HTTPS 时出现错误。1. http S不会加载主网页。2. http S会加载 Horde_test 页面,并且测试工具成功连接到 imap/imaps/pop3/pop3s。3. http 会加载 webmail 登录页面,但给出“Error ERR_CONNECTION_TIMED_OUT”。

我得到的唯一已知错误是在重新加载 nginx 后,每当我对 nginx.conf 进行更改(即使我只是添加注释行并且没有更改其他内容!)时,都会发生以下情况:

/etc/init.d/nginx: 2: /etc/init.d/nginx: 语法错误:新行意外

- 可悲的是,一旦发生这种情况......即使没有httpS的常规主页现在也会给出“ERR_TOO_MANY_REDIRECTS”..​​....只有重新启动才能重新启动这个http工作。

这是我的 nginx.conf 文件。

...前言...这个!@#$ 工具不会让我发布带有控制字符的常规配置!- 如果它看起来很愚蠢,那不是我的错。

用户 nginx worker_processes 4 pid varrunnginx.pid

事件worker_connections 768 multi_accept on

error_log varlognginxdebuglog 调试

http

     Basic Settings


    sendfile 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

server listen 80 listen for ipv4 此行是默认和隐含的 listen 80 default ipv6only=on listen for 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 on ssl_certificate etc nginxsslserver.crt ssl_certificate_key etc *ssl_certificate_key etc *ssl_certificate_key etc. 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_params


    root usrsharenginxwwwwcrc
    index index.php index.html index.htm

我没有使用下面的直接邮件端口,而是通过 browserHorde-webmail 使用 TLS。

邮件 请参阅 httpwiki.nginx.orgImapAuthenticateWithApachePhpScript 上的示例身份验证脚本

    auth_http localhostauth.php
    pop3_capabilities "TOP" "USER"
    imap_capabilities "IMAP4rev1" "UIDPLUS"

   server 
           listen     localhost110
           protocol   pop3
           proxy      on


   server 
           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*听938Dovecot TCP 0 0 0.0.0.0.0143 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.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 * LISTEN 800sshd

4

1 回答 1

0

这里有几件事是错误的,“答案”还没有完成。

  1. 我从 nginx.conf 中删除了 httpS 配置。
  2. 我删掉了几乎所有 fastcgi 的东西,并放入了一个基本配置:

    服务器 { server_name example.org; 根 /var/www/site;

    位置 / { try_files $uri $uri/ /index.php; }

    位置 ~ .php$ { 包括 fastcgi.conf; fastcgi_pass unix:/tmp/php-fpm.sock; } }

  3. 我回到了基本的虚拟主机,直接路径会显示上面提到的每个非 httpS 页面,但是常规 URL 会出现 403-forbidden 错误。所以我必须输入 /index.php

  4. 我发现从我想使用安装的 Apache 的工具中加载脚本与我的 nginx 端口 80 访问冲突。-卸载了那个,但仍然有常规的 URL 问题。

  5. 错误日志显示权限问题。- 所以我说这篇文章现在已经解决了,因为根本原因是权限。

于 2015-02-08T04:34:04.047 回答