A. nginx 代理只支持http1.0嗎
比如你用Node.JS寫了一些TCP服務,那麼Nginx就可以給這些Node.JS做TCP代理,比如開啟多個Node.JS監聽版不同的埠,經過權Nginx TCP代理到upstream實現負載均衡,Nginx比Haproxy的優勢還在於Nginx能夠提供HTTP/HTTPS服務,可以處理靜態資源,或者把一些其他請求交給其他語言來處理,比如可以把一些輸出HTML頁面的請求fastcgi_pass給PHP-FPM處理,總而言之,Nginx更像是在做一個可擴展的Web開發系統.另外,Nginx已經支持WebSocket反向代理,而移動瀏覽器對HTTP上的全雙工通信WebSocket的支持還是不錯的,只是還沒有足夠成熟.
B. nginx 能根據http頭控制過期嗎
這里用虛擬機配置了下: nginx 配置文件內容: 主要是這一句: proxy_cache_path /www/ levels=1:2 keys_zone=Z:10m inactive=1m max_size=30g; 這一句定義一個區域,名字是 Z ,在內版存中的空權間為10MB ,硬碟中的最大空間為 30G; inactive=1m 是..
C. nginx 日誌記錄請求頭 是http 還是https
可以在日誌中記錄使用的協議
具體的值要看訪問者訪問的是http協議還是https協議
D. nginx正則過濾$http_cookie欄位。將其 非test_cookie鍵值對的 所有cookie值都匹配到$my_cookie變數中
|代碼原本是這樣的吧:newRegExp("(^|)"+name+"=([^;]*)(;|$)"),name前後有+"(^|)"這個匹配開頭和空格cookie的保存方式:name=value,有多個cookie時用分內號空格隔開:容cookieaa=aaaa;cookiebb=bbbb如果name值為cookieaa,完整的正則為(^|)cookieaa=([^;]*)(;|$)匹配結果:cookieaa=aaaa;
E. 怎樣隱藏HTTP請求響應頭里的nginx版本號
1、進入nginx配置文件(如nginx.conf)並增加 server_tokens off;server_tokens作用域是http server location語句塊,server_tokens默認值是on,表示顯示版本信息,設置server_tokens值是off,就可以在所有地方隱藏nginx的版本信息。例如
http {
……省略
sendfile on;
tcp_nopush on;
keepalive_timeout 60;
tcp_nodelay on;
server_tokens off;
…….省略
}
2、編輯php-fpm配置文件,如fastcgi.conf或fcgi.conf(這個配置文件名也可以自定義的,根據具體文件名修改):
找到:
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
改為:
fastcgi_param SERVER_SOFTWARE nginx;
3、重啟nginx 重新載入配置文件後,nginx版本號已經隱藏。
F. nginx能不能列印自定義的http header裡面的信息
nginx上有add_header參數,nginx對應虛擬主機里加:add_header Vary "Accept-Encoding, User-Agent" 重啟nginx,這個只是添加header 如果想完全自定義版header使用第權三方模塊
G. nginx 怎麼開啟httpimagefiltermole
兩都同東西 Nginx反向代理伺服器 Apacheweb應用伺服器 同需求應用同東西, 例,要用做負載做轉發,肯定nginx,用NIO模型 要用做靜態網頁伺服器,肯定apache
H. nginx怎麼設置虛擬機來記錄所有非法host header
nginx為了實現反向代理的需求而增加了一個ngx_http_proxy_mole模塊。其中proxy_set_header指令就是該模塊需要讀取的配置文件。在這里,所有設置的值的含義和http請求同中的含義完全相同,除了Host外還有X-Forward-For。
Host的含義是表明請求的主機名,因為nginx作為反向代理使用,而如果後端真是的伺服器設置有類似防盜鏈或者根據http請求頭中的host欄位來進行路由或判斷功能的話,如果反向代理層的nginx不重寫請求頭中的host欄位,將會導致請求失敗【默認反向代理伺服器會向後端真實伺服器發送請求,並且請求頭中的host欄位應為proxy_pass指令設置的伺服器】。
同理,X_Forward_For欄位表示該條http請求是有誰發起的?如果反向代理伺服器不重寫該請求頭的話,那麼後端真實伺服器在處理時會認為所有的請求都來在反向代理伺服器,如果後端有防攻擊策略的話,那麼機器就被封掉了。因此,在配置用作反向代理的nginx中一般會增加兩條配置,修改http的請求頭:
proxy_set_header Host $http_host;
proxy_set_header X-Forward-For $remote_addr;
這里的$http_host和$remote_addr都是nginx的導出變數,可以再配置文件中直接使用。如果Host請求頭部沒有出現在請求頭中,則$http_host值為空,但是$host值為主域名。因此,一般而言,會用$host代替$http_host變數,從而避免http請求中丟失Host頭部的情況下Host不被重寫的失誤。