最近中文字幕2019高清,亚洲人成高清在线播放,男生淦哭男生图片动漫有字,国产亚洲精品九九久在线观看,无码av专区丝袜专区

移動(dòng)代碼適配 nginx怎么添加Vary HTTP標頭?

優(yōu)采云 發(fā)布時(shí)間: 2016-11-25 14:30
首先明確,什么是代碼適配?
?
代碼適配是指,同一個(gè)url被訪(fǎng)問(wèn)時(shí),服務(wù)器通過(guò)UA等方式判斷客戶(hù)端類(lèi)型,是手機還是PC,然后分別輸出不同的html源碼給客戶(hù)端。
?
以下是三種適配方式的區別:

?
在代碼適配模式,百度官方給出的適配指引是這樣的:

(截圖來(lái)自官方文檔
?
其中在html添加meta標記就不說(shuō)了,現在解釋如何添加Vary HTTP標頭。
百度站長(cháng)平臺有這樣一段介紹:

(截圖來(lái)自官方文檔
操作說(shuō)明摘錄如下:
如果web服務(wù)器是nginx的話(huà),第一步要確定安裝了ngx_headers_more模塊,nginx源碼沒(méi)有包含該模塊,需要另行添加。安裝方法:
wget 'http://nginx.org/download/nginx-1.5.8.tar.gz'
tar –xzvf nginx-1.5.8.tar.gz
cd nginx-1.5.8/
#here we assume you would install you nginx under/opt/nginx/.(翻譯:這里假設你打算將nginx安裝在
/opt/nginx/這個(gè)目錄)
./configure –prefix=/opt/nginx --add-module=/path/to/headers-more-nginx-module
make
make install
第二步,在配置文件nginx.conf中,添加如下代碼:
gzip_vary on;
more_set_headers -s 200 "Vary: ""Accept-Encoding, User-Agent";
然后重啟服務(wù)器。
?
首先明白,nginx要向客戶(hù)端發(fā)送Vary標頭,需要支持more_set_headers,它是由一個(gè)名字叫做“headers-more-nginx-module”的nginx模塊提供的,但是這個(gè)模塊在nginx安裝時(shí),默認并沒(méi)有編譯進(jìn)去。也就是說(shuō)nginx默認不支持more_set_headers,所以得先安裝這個(gè)模塊,上述代碼就是在重新安裝nginx的過(guò)程中把這個(gè)模塊編譯進(jìn)去。
?
但是,如果你復制上面的代碼,一步一步操作,到最后肯定是錯的。
?
重新清理一下思路:
? ? 1. 我們服務(wù)器已經(jīng)有nginx在運行,所以不要重新安裝,以免把以前的配置弄亂。
? ? 2. 我們需要重新編譯一個(gè)nginx,覆蓋原來(lái)的,要求nginx版本跟原來(lái)一樣,原來(lái)的配置不能變。
? ? 3. 因此我們需要一個(gè)新的nginx安裝包,為了安裝headers-more-nginx-module這個(gè)模塊,我們還得需要這個(gè)模塊的安裝包。
? ? 4. nginx安裝包并不安裝,只是編譯,將新的模塊一起編譯進(jìn)去。
? ? 5. 我們需要找到編譯好的nginx可執行文件覆蓋原來(lái)的nginx。
? ? 6. 然后我們需要在nginx的設置文件(nginx.conf)中使用more_set_headers,以添加Vary標頭。
? ? 7. 重啟nginx。結束。
?
現在,我們開(kāi)始:
? ? 1. 確定nginx原來(lái)的安裝路徑。這個(gè)指的是nginx的可執行文件,找到它,記下路徑。每個(gè)人的服務(wù)器可能不一樣,請找準你自己的。比如我的:
/www/wdlinux/nginx-1.0.12/sbin/nginx
/*這個(gè)nginx就是可執行文件,也就是需要被替換的文件*/
?


? ? 2. 查看原來(lái)的nginx安裝的時(shí)候用的什么配置。
//使用  安裝路徑 -V  的命令查詢(xún),V為大寫(xiě)。如
/www/wdlinux/nginx-1.0.12/sbin/nginx -V

其中紅線(xiàn)框內的configure arguments: --user=www --group=www --prefix=/www/wdlinux/nginx-1.0.12 --with-http_stub_status_module --with-http_ssl_module就是原來(lái)nginx安裝時(shí)的配置。nginx version: nginx/1.0.12表示nginx版本號為1.0.12。
?
? ? 3. 獲得nginx的官方下載地址。
#http://nginx.org/download/nginx-版本號.tar.gz
//如果你確實(shí)要換其他版本,也是可以的,基本無(wú)影響
//比如我用1.8.1版本,就是:
#http://nginx.org/download/nginx-1.8.1.tar.gz
? ? 4. 獲得headers-more-nginx-module模塊的官方下載地址。
進(jìn)入https://github.com/openresty/headers-more-nginx-module/releases尋找你所要的版本鏈接,我使用的是當前最新版v0.32。https://github.com/openresty/headers-more-nginx-module/archive/v0.32.tar.gz?

?
? ? 5. SSH登錄服務(wù)器,下載以上兩個(gè)資源,并解壓:
#到當前用戶(hù)目錄,比如我是root用戶(hù),就等是/root目錄
cd ~
#下載nginx
wget 'http://nginx.org/download/nginx-1.8.1.tar.gz' nginx-1.8.1.tar.gz
#此時(shí)nginx下載已完畢,在/root目錄下,名為nginx-1.8.1.tar.gz
#下載模塊
wget 'https://github.com/openresty/headers-more-nginx-module/archive/v0.32.tar.gz' headers-more-nginx-module-v0.32.tar.gz
#此時(shí)模塊下載已完畢,在/root目錄下。名為headers-more-nginx-module-v0.32.tar.gz
#解壓nginx
tar zxvf nginx-1.8.1.tar.gz
#執行完后/root目錄下多出一個(gè)nginx-1.8.1的目錄,里面就是解壓出來(lái)的東西
tar zxvf headers-more-nginx-module-v0.32.tar.gz
#執行完后/root目錄下多出一個(gè)headers-more-nginx-module-v0.32的目錄,里面就是解壓出來(lái)的東西
? ? 6. 配置、編譯nginx,將模塊編譯進(jìn)去。
#進(jìn)入nginx解壓后的目錄
cd nginx-1.8.1
#設置配置參數,加入模塊,即在第2步獲取的配置參數后加入:--add-module=模塊解壓目錄絕對路徑
./configure --user=www --group=www --prefix=/www/wdlinux/nginx-1.0.12 --with-http_stub_status_module --with-http_ssl_module --add-module=/root/headers-more-nginx-module-v0.32
#執行完后,就是編譯:
make
#注意這里不用用'make install',即只編譯,不安裝
#編譯完成后,就已經(jīng)生成了nginx可執行文件,位置在當前nginx-1.8.1目錄下objs目錄里面,名字就叫nginx

?
? ? 7. 復制可執行文件,替換原來(lái)的
#先備份原來(lái)的nginx可執行文件,以防意外
cp /www/wdlinux/nginx-1.0.12/sbin/nginx /www/wdlinux/nginx-1.0.12/sbin/nginx-bak
#先停止當前正在運行的nginx進(jìn)程
service nginxd stop
#再復制新可執行文件,替換原來(lái)的
cp /root/nginx-1.8.1/objs/nginx /www/wdlinux/nginx-1.0.12/sbin/nginx
#詢(xún)問(wèn)是否覆蓋文件,是,輸入y
y
#為減少耽擱時(shí)間,馬上啟動(dòng)nginx
service nginxd start

? ? 8. 找到nginx的conf文件,在原來(lái)安裝目錄里,sbin同級的一個(gè)目錄,名稱(chēng)就叫conf,里面有個(gè)nginx.conf,就是它。

現在要修改這個(gè)nginx.conf文件:
#進(jìn)入所在目錄
cd /www/wdlinux/nginx-1.0.12/conf/
#編輯器打開(kāi)文件
vi nginx.conf
#進(jìn)入插入編輯模式,輸入i
i
#在gzip_vary on;下方加入一句more_set_headers,并把gzip_vary on;注釋掉(在前面加#號)
more_set_headers -s 200 'Vary: Accept-Encoding, User-Agent';
#然后按ESC退出編輯模式
#然后保存文件,關(guān)閉:
:wq
#再重啟一次nginx,使配置文件生效
service nginxd restart
#結束

? ? 9. 去站長(cháng)平臺使用抓取工具,驗證一下吧

?

0 個(gè)評論

要回復文章請先登錄注冊


官方客服QQ群

微信人工客服

QQ人工客服


線(xiàn)

最近中文字幕2019高清,亚洲人成高清在线播放,男生淦哭男生图片动漫有字,国产亚洲精品九九久在线观看,无码av专区丝袜专区