1. 程式人生 > >通過nginx對映指定目錄檔案給外部訪問

通過nginx對映指定目錄檔案給外部訪問

開發在排查線上問題時需要要檢視伺服器的日誌檔案。但是我們把伺服器的訪問許可權下放給開發也不現實。對此我們可以通過ngxin配置,實現通過瀏覽器檢視日誌,瀏覽日誌檔案。

先給出完整配置


    server {
    listen   80;        
        location /logs/fanlai {
            autoindex on;
            root /root/;
        }

        location ^/logs/fanlai~*\.(log|txt)$ {
                add_header Content-Type text
/plain; root /root/; } }

其中listen 80;是nignx最常用的配置,表示代理80埠,將location裡面配置的內容反向代理到80埠供外部訪問。

開啟瀏覽檔案目錄索引功能

    location /logs/fanlai {
            autoindex on;
            root /root/;
        }

該配置表示,自動攔截以/logs/fanlai開頭的請求,如果沒有其他location的攔截配置能夠符合該url,則命中該location。
autoindex on表示開啟檔案索引,這樣我們在瀏覽器輸入檔案目錄url時,可以顯示檔案索引目錄。最終訪問的資源對映到了/root/目錄。

比如訪問urlhttp://192.168.2.251/logs/fanlai/fanlaipack/時,最終顯示的是檔案目錄/root/logs/fanlai/fanlaipack,頁面顯示如下。
這裡寫圖片描述

開啟日誌檔案訪問功能

        location ^/logs/fanlai~*\.(log|txt)$ {
                add_header Content-Type text/plain;
                root /root/;
        }

/logs/fanlai開頭.log或者.txt的檔案將被攔截處理。
add_header Content-Type text/plain

表示響應頭,告訴瀏覽器直接在頁面顯示檔案內容。如果不配置,那麼點選檔案連結時會自動下載。

比如我的伺服器環境如下:
日誌所在目錄:root/logs/fanlai
比如希望訪問的日誌檔案:/root/logs/fanlai/fanlaipack/info.log
訪問url:http://192.168.2.251/logs/fanlai/fanlaipack/info.log

這裡寫圖片描述