Nginx,Horde,Https,Redirect,这个网页有一个重定向循环

时间:2015-02-07 19:58:19

标签: php nginx https horde

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

Http工作正常(h - p://www.mydomain.not/index.php)。 Http S NOT 使用相同的网址。

Http S 会加载 webmail 登录页面但是... 这个页面看起来不对。它看起来与我使用Apache2时所做的一样,这让我相信某些东西没有正确处理PHP。 2.我无法直接通过此 webmail 登录页面登录,但我可以使用Horde提供的 Horde-TEST.php 页面登录。 注意:webmail h - p://www.mydomain.not/webmail/ 登录 .php 部落测试 h - p://www.mydomain.not/webmail/ 测试 .php

因此.... A)常规loginPage(加载,但无法登录) (H - p 取值://www.mydomain.not/webmail/login.php) B)Horde-Mail Test页面(非httpS)确实加载,并且测试登录适用于浏览器中的所有imap / imapS和pop3 / pop3S。 ħ - 号码://www.mydomain.not/webmail/test.php

- 但是,如果交换到httpS,测试登录页面根本不会加载 ħ - P 取值://www.mydomain.not/webmail/test.php

如果键入特定的URL,将加载

H

S (h-pS://www.mydomain.not/webmail/login.php) - 但我注意到该页面图形上不准确。页面的结构看起来不像我使用Apache2时的Horde / Mail登录页面。

当我为http设置重定向以强制https时,主网页页面无法加载" h-pS://www.mydomain.not/index.php",但仍然是webmail登录页面加载......-但像以前一样,它不会让我登录...继续给我"错误ERR_CONNECTION_TIMED_OUT"。

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

我应该提一下,我还在root网站目录中加载了prestashop,并且没有PHP错误及其任何功能......-但我此时也没有起诉任何httpS。 ..just http。

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

我得到的唯一已知错误是在重新加载nginx之后,每当我对nginx.conf进行更改时都会从CLI中获取错误(即使我只是添加注释行并且不做其他更改!)这就是发生的事情:

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

- 遗憾的是,一旦发生这种情况......即使没有httpS的regualr主页现在也会提供" ERR_TOO_MANY_REDIRECTS" ...只有重新启动才会启动此http再次运行。

这是我的nginx.conf文件。

...前言......这个!@#$ TOOL WONT让我发布常规配置控件CHAR' S !! - 如果它看起来很愚蠢,那不是我的错。

用户nginx worker_processes 4 pid varrunnginx.pid

事件         worker_connections 768          <_ p>上的multi_accept

error_log varlognginxdebuglog debug

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

服务器         听80听ipv4这条线是默认的和隐含的         听80默认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         ssl         ssl_certificate etcnginxsslserver.crt         ssl_certificate_key etcnginxsslserver.key         server_name 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_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 * 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 * LISTEN 800sshd

1 个答案:

答案 0 :(得分:0)

这里有几件事情错了,&#34;答案&#34;尚未完成。

  1. 我从nginx.conf中删除了httpS配置。
  2. 我删除了几乎所有的fastcgi内容,然后输入一个基本配置:

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

    location / {     try_files $ uri $ uri / /index.php; }

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

  3. 我回到基本的网络托管,直接路径会显示上面提到的每个非httpS页面,但常规网址会出现403禁止错误。所以我必须输入/index.php

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

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