V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
sage417
V2EX  ›  NGINX

有没有人遇到 Nginx 做反代 https 登陆页面出现问题

  •  
  •   sage417 · 2015-03-30 19:52:45 +08:00 · 7931 次点击
    这是一个创建于 3507 天前的主题,其中的信息可能已经有所发展或是发生改变。

    无聊做了个反代上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;
        }
    }
    
    第 1 条附言  ·  2015-03-31 22:08:05 +08:00
    今天已经完成排错任务原因为:
    [kQBYS09a1******@********* ~]$ cat /usr/local/nginx/logs/error.log | grep invalid
    2015/03/31 16:15:46 [info] 11637#0: *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
    7 条回复    2015-04-25 22:11:00 +08:00
    Slienc7
        1
    Slienc7  
       2015-03-30 20:41:17 +08:00
    多打了个M 害我以为网断了

    没仔细看,不过这种情况一般都是多个域名你只是做了一个
    Archangel_SDY
        2
    Archangel_SDY  
       2015-03-30 23:05:34 +08:00
    proxy_set_header Host $http_host;

    这个好像把你自己那个反代的 Host 发给了 DMM 了, 去掉或写死成 www.dmm.com 看看。
    sage417
        3
    sage417  
    OP
       2015-03-31 13:55:45 +08:00
    @xgowex 我昨天躺在床上还在想是不是这个问题。。。检查过了只有一个域名
    sage417
        4
    sage417  
    OP
       2015-03-31 22:07:34 +08:00
    今天已经完成排错任务原因为:
    [kQBYS09a1******@********* ~]$ cat /usr/local/nginx/logs/error.log | grep invalid
    2015/03/31 16:15:46 [info] 11637#0: *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
    @xgowex @Archangel_SDY
    Slienc7
        5
    Slienc7  
       2015-03-31 22:14:20 +08:00
    @sage417 這也是滿拼的,找出來不容易,贊一個!
    ryd994
        6
    ryd994  
       2015-04-01 07:04:31 +08:00 via Android
    @sage417 下划线确实就是不合法的……rfc规定的
    Dk2014
        7
    Dk2014  
       2015-04-25 22:11:00 +08:00 via Android
    问下楼主一个问题,我在尝试反代dlsite的时候,经过反代的域名访问会在adultcheck那里卡住
    /maniax/adultcheck这里本来是跳转到/maniax/ 这个是经过18x检测的
    反代之后就成跳转到maniax// 然后自动去掉/ 又回到/maniax/ 无限18x认证
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   939 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 21:10 · PVG 05:10 · LAX 13:10 · JFK 16:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.