NutzCN Logo
问答 请求通过NGINX后参数变为双份
发布于 3348天前 作者 limingwei 2164 次浏览 复制 上一个帖子 下一个帖子
标签: nginx

不通过 nginx 直接 jetty 请求地址

http://localhost:8280/ticket.json?provider_id=13&key=中文
http://localhost:8280/ticket.json?provider_id=13&key=%E4%B8%AD%E6%96%87

日志

ewei-open : ERROR 2015-10-23 10:41:10,635 com.ewei.open.auth.interceptor.AuthorizeInterceptor doAuthenticate failed, not found parameter _token, _password or _app_secret, url=localhost//ticket.json, parameters:{provider_id=13, key=中文}

通过 nginx 转发到 jetty 请求地址

http://localhost:83/api/ticket.json?provider_id=13&key=中文
http://localhost:83/api/ticket.json?provider_id=13&key=%E4%B8%AD%E6%96%87

日志

ewei-open : ERROR 2015-10-23 10:42:32,585 com.ewei.open.auth.interceptor.AuthorizeInterceptor doAuthenticate failed, not found parameter _token, _password or _app_secret, url=localhost//ticket.json, parameters:{provider_id=13,13, key=中文,中文}

nginx 配置

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    autoindex on;
    autoindex_exact_size off;
    autoindex_localtime on;
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    underscores_in_headers on;
    proxy_connect_timeout 10s;
    proxy_read_timeout 120s;
    proxy_send_timeout 120s;


    server {
     listen 83;
        server_name ~^(.*)$;
        location ~^/api/ {
            proxy_pass http://localhost:8280;
            proxy_set_header Host $host:$server_port;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Server-Port $server_port;
            proxy_set_header X-Real-Scheme $scheme;
        }
   }
}
10 回复

这配置太复杂了, 得自行删除不需要的部分

Nginx 简化或配置

events {}

http {
    server {
        listen 83;

        location ~^/api/ {
            proxy_pass http://localhost:8280;
        }
    }
}

改成这样应该好了

proxy_pass http://127.0.0.1:8280;

试了, 改成 proxy_pass http://127.0.0.1:8280; 照旧

用的啥版本nginx?? 某野鸡版本?

不应该啊 linux服务器上 本地win10环境 都这情况

其实你确定配置文件生效了没?

也许和项目内配置有关系
新建了一个项目
请求过nginx
未出现 双份

eeee
好像是 urlrewrite 的原因

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 4.0//EN"
        "http://www.tuckey.org/res/dtds/urlrewrite4.0.dtd">
<urlrewrite use-query-string="true">
    <rule>
        <from>^/api/(.*)$</from>
        <to>/$1</to>
    </rule>
</urlrewrite>
添加回复
请先登陆
回到顶部