「Docker初心者系列」 NGINX File Server

為了要樹莓派裡面的資料夾作為file server分享出去,搞了好久,今天晚上終於成功,所以把過程記錄下來,最終結果會像下面這樣:
final_result

接著檔案最下面加上如下圖的內容:
raspberry_static_ip
其中ip_address可用樹莓派目前使用拿到的IP來設定(於終端機ifconfig可以查詢得到),而routers與domain_name_servers則可以用你們家路由器Hub的IP位置,中華電信通常是192.168.1.1。

  • Step 2: 因為NGINX預設啟動時是不會把整個目錄分享出去,故你得把autoindex設定打開。故先找一個暫存位置,如/home/pi/Templates下建立起一個檔案:default.conf,然後把參考這個位置先貼上預設值,接著於location中分別加: autoindex_exact_size off;autoindex on;,其內容會如下圖:
    nginx_autoindex_on

  • Step 3: 接著,就是來把NGINX的docker image啟動起來,你得先決定好你要開放的資料夾,如我是把/home/pi/Public/FileServer開放出去。 所以我的docker啟動指令會如下面這樣:

    1
    2
    3
    4
    5
    docker run --name ngx_fsr \
    -v /home/pi/Templates/default.conf:/etc/nginx/conf.d/default.conf \
    -v /home/pi/Public/FileServer:/usr/share/nginx/html:ro \
    -d -p 80:80 \
    nginx

    其中第一個-v代表啟動NGINX的時候是參考我們修改過後的default.conf來啟動,而第二個-v則是把你要開放的資料夾對應到NGINX的公開分享資料夾。 接著使用docker ps來看一下是否有啟動成功! 這邊要記得,如果你資料夾內有index.html,則預設會先顯示index.html內容。

  • Step 4: 好啦! 倒數第二步,就是要把對外的port打開,讓你可以從外部連存取你的file server內容。 首先,輸入你hub的IP位置,像我的是192.168.1.1,登入後從選單中找尋”Port Forwarding”(每個廠商路由器登入後的介面不盡相同,這個可以Google查一下你的在哪裡)。
    hub_menu

然後開始進行設定,其中IP就填上你於Step 1中樹莓派中設定的IP,然後在Port對應列表中填上你要開放的port number,接著儲存。
virtual_servers

  • Step 5: 到https://myip.com.tw/ 查詢你對外的IP為何,如此就可以於外部系統用這個對外IP加上你開放的Port(如:http://134.181.63.98:80 )連入你於樹莓派開放的資料夾囉!!!
0%