繁体   English   中英

Nginx 代理删除特定路径和emty Post请求正文+HTTPS

[英]Nginx proxy remove spesific path and emty Post request body +HTTPS

我正在使用 nginx 作为 web 服务代理。 我有如下 rest 服务,我想代理我的域https://www.example.com/myRestservice 服务有这样的方法;

http://1.1.1.1:123/api/work/method1
http://1.1.1.1:123/api/work/method2

*顺便说一句,服务在 nginx.conf 中的两台服务器上发布

结果我想访问像“https://www.example.com/Restservice/api/work/method1”这样的服务方法。

当我尝试如下所示在 nginx 中使用重写时,我可以访问服务。 但是此时Post方法的request body是空的。 我可以看到服务日志。

在我的 nginx.config 中

upstream RestService {
    server 1.1.1.1:123;
    server 1.1.1.2:123;
}
server {
        listen                443 ssl;
        server name           https://www.example.com;

 location ~ ^/Restservice/ {
           
    add_header Access-Control-Allow-Origin *;
    rewrite ^/Restservice/(.*) /$1 break;
    proxy_pass http://Restservice/;
    proxy_http_version  1.1;
}
}

再见,我尝试像这样定位零件的方式,结果是一样的。

  location   /Restservice { 
    
    proxy_pass http://Restservice/;
}

通常我可以通过 https 链接的配置访问 soap 服务。 是关于 http 重定向到 https 吗?

在nginx访问日志; 状态:500 请求:POST /Restservice/api/work/method1 HTTP/1.1

我找到原因了。 因为编码结束。 选择结束编码类型“UTF-8”后,我可以看到请求正文。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM