最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

nginx無法獲取帶下劃線的header值的問題解決

 更新時間:2024年12月10日 11:36:57   作者:清晨細雨~  
Nginx默認(rèn)會將連字符轉(zhuǎn)換為下劃線,這可能會導(dǎo)致無法正確獲取到原始的請求頭值,本文主要介紹了nginx無法獲取帶下劃線的header值的問題解決,感興趣的可以了解一下

問題描述:因為項目用到了xxl,需要header為xxl_sso_sessionid的值,本地沒有問題,放到服務(wù)器上,nginx卻無法獲取到。

NGINX 默認(rèn)會將所有包含連字符(-)的請求頭轉(zhuǎn)換為下劃線(_)格式。這是為了符合一些系統(tǒng)的命名規(guī)則,因為環(huán)境變量通常不允許連字符。

要在 NGINX 中直接使用包含連字符的請求頭,需要進行一些特殊配置??梢允褂?nbsp;underscores_in_headers 指令來禁用這種行為,從而保留原始的連字符格式。

解決1. 啟用 underscores_in_headers

首先,確保在 HTTP 塊中啟用 underscores_in_headers 指令:

http {
    underscores_in_headers on;

    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                    '$status $body_bytes_sent "$http_referer" '
                    '"$http_user_agent" "$http_host" "$http_xxl_sso_sessionid" ';

    access_log /var/log/nginx/access.log main;

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    include /etc/nginx/conf.d/*.conf;
}
axios.interceptors.request.use(function (config) {
    // 在發(fā)送請求之前做些什么
    let token = localStorage.getItem("token");
    if (token != null && token != 'null') {
        config.headers["Xxl_sso_sessionid"] = token;
    }
    return config;
}, function (error) {
    // 對請求錯誤做些什么
    return Promise.reject(error);
});

這樣的話,如果前端這樣配置,后端可以直接獲取到header的值。

解決2

前端配置如下,nginx會自動轉(zhuǎn)換成下劃線,也就是xxl_sso_sessionid,就不需要開啟underscores_in_headers on

axios.interceptors.request.use(function (config) {
    // 在發(fā)送請求之前做些什么
    let token = localStorage.getItem("token");
    if (token != null && token != 'null') {
        config.headers["Xxl-sso-sessionid"] = token;
    }
    return config;
}, function (error) {
    // 對請求錯誤做些什么
    return Promise.reject(error);
});

nginx配置

http {

    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                    '$status $body_bytes_sent "$http_referer" '
                    '"$http_user_agent" "$http_host" "$http_xxl_sso_sessionid" ';

    access_log /var/log/nginx/access.log main;

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    include /etc/nginx/conf.d/*.conf;

    upstream takeout-back-api {
        server localhost:10086 weight=1;
    }

    upstream order-back-api {
        server 8.141.87.136:10000 weight=1;
    }

    server {
        listen 443 ssl;
        server_name www.domain.com;
        ssl_certificate xxx.cn_bundle.crt;
        ssl_certificate_key xxx.cn.key;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_prefer_server_ciphers on;

        location / {
            root /usr/share/nginx/order-ui/dist;
            index index.html index.htm;
            try_files $uri $uri/ /index.html;
        }

        location /member {
            proxy_pass http://takeout-back-api;
        }

        location /order {
            proxy_set_header xxl_sso_sessionid $http_xxl_sso_sessionid;
            proxy_pass http://order-back-api;
        }
    }
}

到此這篇關(guān)于nginx無法獲取帶下劃線的header值的問題解決的文章就介紹到這了,更多相關(guān)nginx獲取下劃線的header值內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關(guān)文章

最新評論

南木林县| 平定县| 华容县| 东乡| 昌邑市| 南康市| 鄂州市| 东乌珠穆沁旗| 灌云县| 福建省| 无为县| 始兴县| 花莲县| 济阳县| 合江县| 霍城县| 新宁县| 大荔县| 延长县| 贵定县| 水城县| 金华市| 乐清市| 银川市| 平凉市| 阜康市| 桦南县| 贡嘎县| 鲁山县| 舞阳县| 丰城市| 云林县| 仁化县| 晋中市| 镇赉县| 兴仁县| 晋城| 汝阳县| 邢台市| 枞阳县| 拜城县|