0

私の REST API では、カスタム ヘッダーX-APP-IDを apache2 リバース プロキシ経由で 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>
4

1 に答える 1

1

Django が HTTP ヘッダーを のキーに変換するときrequest.META、すべての文字を大文字に変換し、ハイフンをアンダースコアに置き換え、HTTP_プレフィックスを追加します。

したがって、 をX-APP-ID使用して HTTP ヘッダーにアクセスする必要がありますrequest.META['HTTP_X_APP_ID']

于 2018-10-22T13:36:53.940 に答える