Nginx中add_header和proxy_set_header的區(qū)別及說明
proxy_set_header和add_header的區(qū)別

proxy_set_header是nginx設(shè)置請(qǐng)求頭給上游服務(wù)器,add_header是nginx設(shè)置響應(yīng)頭信息給瀏覽器。
1. proxy_set_header
語法格式: proxy_set_header field value; value值可以是包含文本、變量或者它們的組合。 常見的設(shè)置如: proxy_set_header Host $proxy_host; proxy_set_header version 1.0;
假如nginx請(qǐng)求上游服務(wù)器時(shí),添加額外的請(qǐng)求頭,就需要使用proxy_set_header。
在java中使用HttpServletRequest.getHeader(String name)來獲取請(qǐng)求頭的值,name是請(qǐng)求頭的名稱。
例如: proxy_set_header version 1.0;
String version = request.getHeader("version");
System.out.println(version);
2. add_header
nginx響應(yīng)數(shù)據(jù)時(shí),要告訴瀏覽器一些頭信息,就要使用add_header。
例如跨域訪問:
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Headers' 'X-Requested-With';
add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS'
# 由于跨域請(qǐng)求,瀏覽器會(huì)先發(fā)送一個(gè)OPTIONS的預(yù)檢請(qǐng)求,我們可以緩存第一次的預(yù)檢請(qǐng)求的失效時(shí)間
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Max-Age' 2592000;
add_header 'Content-Type' 'text/plain; charset=utf-8';
add_header 'Content-Length' 0;
return 204;
}
更改完畢后,進(jìn)入nginx sbin目錄執(zhí)行./nginx -s reload重啟nginx

總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
nginx使用IPV6的相關(guān)配置項(xiàng)介紹
這篇文章主要介紹了nginx使用IPV6的相關(guān)配置項(xiàng)介紹,首先查看編譯參數(shù)是否編譯了IPV6模塊,然后介紹了監(jiān)聽I(yíng)PV6的配置語法,需要的朋友可以參考下2014-07-07
Nginx內(nèi)置變量應(yīng)用場(chǎng)景分析
Nginx內(nèi)置變量速查表,涵蓋請(qǐng)求URI、客戶端信息、服務(wù)器信息、文件路徑、響應(yīng)與性能等類別,這篇文章給大家介紹Nginx內(nèi)置變量應(yīng)用場(chǎng)景分析,感興趣的朋友跟隨小編一起看看吧2025-11-11
nginx pod hook鉤子優(yōu)雅關(guān)閉示例詳解
這篇文章主要為大家介紹了nginx pod hook鉤子優(yōu)雅關(guān)閉示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11

