技术解析

有没有人遇到 Nginx 做反代 https 登陆页面出现问题
0
2021-05-26 20:28:51
idczone

无大带宽服务器聊做了个反代上dmm
结果dmm的https登陆页面一直不太对
首先响应的时间就非常长,经常超时
然后也无法正常登陆,一直提示密码错误

然而用squid正代就没有任何问题
基本可以确定肯定是nginx哪里错了

研究了半天还是没什么成果。。。所以我就想问问我究竟在哪里掉坑里了

贴部分配置:
server {
listen server_ip:443 ssl;
server_name www.dmmm.com;

ssl_certificate     /usr/local/nginx/conf/server.crt;
    ssl_certificate_key  /usr/local/nginx/conf/server.key;

    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;

    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;

    location / {
        proxy_pass https://www.dmm.com;

        proxy_set_header Host $http_host;

        proxy_max_temp_file_size     0k;
        proxy_connect_timeout       60;
        proxy_send_timeout         60;
        proxy_read_timeout         60;
        proxy_buffers             256 4k;
        proxy_busy_buffers_size      64k;
        proxy_redirect            off;
    }
}

多打了个M 害我以为网断了
没仔细看,不过这种情况一般都是多个域名你只是做了一个

proxy_set_header Host $http_host;
这个好像把你自己那个反代的 Host 发给了 DMM 了, 去掉或写死成 www.dmm.com 看看。

我昨天躺在床上还在想是不是这个问题。。。检查过了只有一个域名

今天已经完成排错任务原因为:
[kQBYS09a1******@********* ~]$ cat /usr/local/nginx/logs/error.log | grep invalid
2015/03/31 16:15:46 [info] 11637*73 client sent invalid header line: "DMM_TOKEN: b909db2e73f6d2c9ab1a6**********" while reading client request headers, client: ********, server: www.dmm.com, request: "POST /my/-/login/ajax-get-token/ HTTP/1.1", host: "www.dmm.com"
经过查阅文档nginx对于"DMM_TOKEN"这类带有下划线的header认为不合法自动忽略
nginx作者和下划线到底有多大仇~~~~~
解决方法也很简单:
underscores_in_headers on
@Archangel_SDY

這也是滿拼的,找出來不容易,贊一個!

下划线确实就是不合法的……rfc规定的

问下楼主一个问题,我在尝试反代dlsite的时候,经过反代的域名访问会在adultcheck那里卡住
/maniax/adultcheck这里本来是跳转到/maniax/ 这个是经过18x检测的
反代之后就成跳转到maniax// 然后自动去掉/ 又回到/maniax/ 无限18x认证

数据地带为您的网站提供全球顶级IDC资源