Comment définir le type de contenu dans proxy_pass?
Sur un site web, le trafic est fluide via http pour la localisation /exemple nous avons besoin de la circulation pour être sécurisé à l'aide de SSL et https. Lors de la redirection vers https, la demande de contenu de type "text/xml" alors qu'elle devrait être "application/json". Devrions-nous définir explicitement quelque chose dans le proxy de l'en-tête "application/json"? Nous avons essayé add_header Content-type "application/json" dans la configuration http, et que je ne voulais pas faire une différence. Que faisons-nous mal?
De configuration Http:
location /instance {
proxy_pass https://instancehost:9443/instance;
proxy_redirect http://localhost.com https://localhost.com;
proxy_set_header X-xmgr-proxy-domain http://localhost.com:80;
proxy_set_header X-xmgr-proxy /instance;
proxy_set_header Access-Control-Allow-Origin "*";
proxy_set_header Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept";
proxy_ssl_certificate /data/nginx/certs/abc.crt;
proxy_ssl_certificate_key /data/nginx/certs/abc.key;
proxy_ssl_trusted_certificate /etc/pki/tls/certs/abc-bundle.crt;
proxy_ssl_protocols SSLv2 SSLv3 TLSv1 TLSv1.1 TLSv1.2;
proxy_hide_header Content-Type;
add_header Content-type "application/json"
}
Réglage du type de contenu dans l'en-tête n'a pas fonctionné comme nous sommes encore à la réception d'un 204 erreur.
configuration https:
location /instance {
proxy_pass https://instancehost.com:9443/instance;
proxy_set_header X-xmgr-proxy-domain https://localhost.com:443;
proxy_set_header X-xmgr-proxy /instance;
proxy_set_header Access-Control-Allow-Origin "*";
proxy_set_header Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept";
proxy_ssl_certificate /data/nginx/certs/abc.crt;
proxy_ssl_certificate_key /data/nginx/certs/abc.key;
}
OriginalL'auteur Bennett_bear | 2015-07-29
Vous devez vous connecter pour publier un commentaire.
Je pense que le problème ici est que vous faites un add_header et add_header semble ajouter que l'en-tête de la réponse (lors de la demande de revenir de backends pour votre client), et que vous souhaitez pour votre backends.
Vous devriez cette ligne dans votre conf
tous proxy_* ensemble de la demande (du client vers le backend façon)
Syntaxe: proxy_set_header valeur de champ;
Valeur par défaut:
proxy_set_header Host $proxy_host;
OriginalL'auteur Horacio Branciforte