繁体   English   中英

Apache2反向代理剥离了我的自定义标头

[英]Apache2 reverse proxy strips my custom header

对于我的REST API,我试图通过apache2反向代理将自定义标头X-APP-ID传递给承载该API的应用程序,但是apache2似乎正在剥离标头。 它没有到达应用程序。 这是为什么?

这是我的apache2配置

<VirtualHost *:443>
    ServerName $SERVER_NAME
    ServerAlias $SERVER_ALIASES

    # Make sure requests are rewritten to use https://
    RewriteEngine on
    RewriteCond %{HTTP_HOST}   !^$SERVER_ALIASES [NC]
    RewriteCond %{HTTP_HOST}   !^$SERVER_NAME
    RewriteRule ^/?(.*)         https://$SERVER_NAME/$1 [L,R,NE]

    SSLEngine on
    SSLOptions +StrictRequire
    <Directory />
        Require all granted
        SSLRequireSSL
    </Directory>

    SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256

    # Enable SSL (disabling weak/vulnerable protocols)
    SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
    SSLHonorCipherOrder On
    SSLCertificateFile /etc/letsencrypt/live/$SERVER_NAME/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/$SERVER_NAME/privkey.pem

   # Logging
   LogLevel warn
   CustomLog /var/log/apache2/access.log combined

   # Static files
   Alias /static/ [redacted]
   Alias favicon.ico [redacted]

   # If the URL mentions favicon, but is not acutally pointing to a file
   # location, rewrite the url to point to the favicon file
   RewriteCond  %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
   RewriteRule  .*favicon\.ico$        [redacted] [L]

   ProxyPass /static/ !
   ProxyPass /media/ !
   ProxyPass / http://localhost:8000/
   ProxyPassReverse / http://localhost:8000/
</VirtualHost>

<VirtualHost *:80>
    # Rewrite request to use SSL
    RewriteEngine on
    ReWriteCond %{SERVER_PORT} !^443$
    RewriteCond %{REQUEST_URI} !/.well-known
    RewriteRule ^/(.*) https://$SERVER_NAME/$1 [NC,R,L]

    ServerName $SERVER_NAME
    ServerAlias $SERVER_ALIASES

    # Logging
    ErrorLog /var/log/apache2/error.log
    LogLevel warn
    CustomLog /var/log/apache2/access.log combined

    # Location for Let's Encrypt to read and write files
    Alias /.well-known /var/www/html/.well-known

</VirtualHost>

当Django将HTTP标头转换为request.META键时,它将所有字符转换为大写,用下划线替换连字符,并添加HTTP_前缀。

因此,您应该使用request.META['HTTP_X_APP_ID']访问X-APP-ID HTTP标头。

暂无
暂无

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

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