我使用nginx作为android应用程序的反向代理服务器(仅限get / post请求)。标题中包含的一些数据。在某些情况下,nginx会丢失“id”或“fail_id”标题。
配置:
user user;
worker_processes 4;
error_log /var/log/nginx/error.log;
events {
worker_connections 100000;
use epoll;
}
http {
upstream myproject {
server 192.168.88.246:2053;
}
server {
listen 2054;
ssl on;
ssl_certificate /home/user/android/cert/cert.pem;
ssl_certificate_key /home/user/android/cert/key.pem;
proxy_read_timeout 600;
proxy_send_timeout 600;
location / {
proxy_pass http://myproject;
proxy_pass_request_headers on;
}
}
}
我可以设置原始请求标头吗?
更新: 一项更详细的研究发现,nginx错过了“fail_id”标题。所有其他标题都有效。
答案 0 :(得分:0)
问题解决了! Nginx默认配置错过了带下划线的标题。
该指令解决了这个问题:
underscores_in_headers on;
答案 1 :(得分:0)
谢谢你的下划线指令。我使用 underscores_in_headers on; 指令和带有下划线的标头值传递给我的节点应用。
现在,我可以使用来自网络的邮递员请求和角度请求来访问标头值(api_key)。
但是现在当从Android应用程序中提出请求并且我在android请求标头中设置了api_key时,我无法访问api_key。
我的配置是:
server {
listen 80;
server_name uat.api.myserver.com;
underscores_in_headers on;
location / {
proxy_pass http://localhost:9102;
}
}