nginx echo 输出 检查配置正确性
在上篇文章中,我們有用到變量去控制該域名是否允許訪問,在配置過程中,其實(shí)變量的值一直是我們想象的,無法確認(rèn)具體步驟的變量值,因此我希望能在每個(gè)步驟中將變量的值打印出來,這是nginx 的echo模塊粉墨登場(chǎng)。
1.nginx 的echo模塊的介紹
???? echo模塊式國(guó)人編寫的nginx的第三方模塊,下載官方nginx后需要再下載echo模塊,并且配合nginx編譯安裝,安裝此模塊后可以在nginx的url訪問中可以通過echo命令輸出字符到用戶的瀏覽器中,可用于檢測(cè)nginx的可訪問性,檢測(cè)nginx的配置的正確性(這是當(dāng)前我需要用的nginx的主要功能),可用于打印你希望了解的http代理相關(guān)http參數(shù),總之在調(diào)試配置nginx環(huán)節(jié),echo命令非常有用。
詳情見:http://www.oschina.net/question/12_45735
2.nginx的echo安裝
???? 安裝第三方模塊的時(shí)候不能使用rpm以及yum方式安裝nginx,如果以前用以上方式安裝過nginx的話,請(qǐng)先卸載掉。
???? 2.1 我們下載nginx的源碼包(http://nginx.org/download/nginx-1.2.7.tar.gz)以及echo模塊的源碼包(https://github.com/agentzh/echo-nginx-module/tags)選擇最新版本
?? 2.2 分別加壓nginx源碼包以及echo模塊源碼包,例如此處我解壓的路徑為:nginx的路徑:/opt/nginx-source ;echo模塊的路徑:/opt/nginx-echo-source
?? 2.3 命令cd進(jìn)入nginx源碼路徑,此處:cd /opt/nginx-source ;
? ? 2.4 配置nginx編譯文件,執(zhí)行編譯配置命令:./configure --prefix=/opt/nginx --add-module=/opt/nginx-echo-source
配置時(shí)屏幕會(huì)輸出日志,檢查配置過程中是否有error,如果有請(qǐng)自行修復(fù),一般是缺少類庫,缺少啥類庫,就下載安裝什么類庫
?? 2.5 編譯nginx,在nginx源碼目錄中執(zhí)行命令: make
?? 2.6 編譯安裝nginx,在nginx 源碼目錄中執(zhí)行命令:make install
?
3.nginx的echo使用測(cè)試
??? 配置nginx的配置文件
?server {
??????? listen?????? 8083;
??????? server_name? _;
??????? access_log????? /var/log/nginx/cn-camm.server.access.log main;
??????? set $tag "0";
??????????????? if ( $host !~ ^appbuilder.vicp.cc$ ){
???????????????????????? set $tag "$tag,1";
??????????????? }
???????????????? if ( $host !~ ^localhost$ ){
??????????????????????? set $tag "$tag,2";
??????????????? }
??????? if ( $tag ~ ^0,1,2$ ){
??????????????????????? return 403;
??????????????? }
??????? location / {
??????????????? echo "can act?";
??????????????? if ($host != '192.168.1.250' ) {
??????????????????????? echo "not equal 250";
??????????????? #?????? return 403;
??????????????? }
???????????????? echo "asdfasdf";
#?????????????? proxy_pass????? http://cncamm;
#??????????????? proxy_set_header Host $host:8083;
??????? }
?? }
配置時(shí)注意
1.echo命令只能放在url請(qǐng)求中,如果放在url請(qǐng)求外,會(huì)報(bào)錯(cuò) 如果報(bào)[emerg]: "echo" directive is?not allowed here?in? ,請(qǐng)檢查echo放置的位置
2.一次url請(qǐng)求,echo 只能打印一行,如果有邏輯判斷,且判斷成功,則echo會(huì)執(zhí)行判斷成功里邊的echo,否則執(zhí)行最后一句echo(此處不一定正確,在測(cè)試中發(fā)現(xiàn)是此現(xiàn)象)
3.如果echo后邊有配置return 或者配置 proxy_pass,則echo的輸出會(huì)被覆蓋,即瀏覽器無法看到echo的內(nèi)容
4.echo的內(nèi)容不是寫在nginx的配置文件中,而是輸出到瀏覽器中,所以echo的打印字符的查看請(qǐng)?jiān)跒g覽器中查看
http://www.360doc.com/content/13/0322/11/4672379_273186975.shtml
總結(jié)
以上是生活随笔為你收集整理的nginx echo 输出 检查配置正确性的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CentOS 6.7构建 OpenRes
- 下一篇: 工银e生活怎么还信用卡