OctoPrint 預設啟動在 5000 Port,Mjpg-Streamer 預設啟動在 8080 Port,有什麼辦法可以將他們結合再一起,透過 80 Port 輸出?
本篇要使用 Proxy 方式,將兩個服務合併到 80 Port 運作。
首先安裝 Nginx 當作 Proxy 功能使用,輸入以下指令安裝:
sudo apt-get install nginx
接下來設定 Nginx 為 Proxy 功能,輸入一下指令:
sudo vi /etc/nginx/nginx.conf
將設定檔設為以下內容,舊內容完全刪除,貼上新內容:
worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; map $http_upgrade $connection_upgrade { default upgrade; '' close; } upstream "octoprint" { server 127.0.0.1:5000; } upstream "mjpg-streamer" { server 127.0.0.1:8080; } server { listen 80; server_name localhost; client_max_body_size 25M; location / { proxy_pass http://octoprint/; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location /sockjs { proxy_pass http://octoprint; # NO trailing slash here! proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } location /webcam/ { proxy_pass http://mjpg-streamer/; } # redirect server error pages to the static page /50x.html error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
這樣就安裝完畢了,接下來重啟 Nginx 測試是否正常,輸入以下指令重啟:
sudo service nginx restart
輸入您的 OctoPrint 網址測試是否正常,記得去除 5000 Port。
例如原始網址是:http://192.168.1.1:5000/ 改為 http://192.168.1.1/
以上步驟就完成 5000 Port 改用 80 Port 運作。
接下來步驟不一定要做,我想要關閉原來的 5000 Port,可以利用以下方法修改。
本方法是利用只有本機可讀取的特性,達成 5000 Port 不提供外部服務。
輸入以下指令修改 OctoPrint 設定:
sudo vi /home/pi/.octoprint/config.yaml
將 server 項目加上 host: 127.0.0.1 這一行。
重新啟動 OctoPrint 及 Nginx,輸入以下指令:
sudo service octoprint restart sudo service nginx restart
完成設定了!
本文章網址:
https://www.ez2o.com/Blog/Post/OctoPrint-Raspberry-Pi-Web-80-Port
https://www.ez2o.com/Blog/Post/513
https://www.ez2o.com/Blog/Post/OctoPrint-Raspberry-Pi-Web-80-Port
https://www.ez2o.com/Blog/Post/513
留言
洪小展 ( 2016-12-08 )您好,想請問一下:
關於第44行的 location /webcam/
如果是用樹莓派官方的相機,需要改名稱嗎?ez ( 2016-12-08 )不需要喔!那只是代表網頁網址的路徑,並不是裝置的驅動路徑。
洪小展 ( 2016-12-14 )不好意思 再請問一下
為甚麼我KEY完sudo service nginx restart後
影像就跑不出來?
然後路徑那些都是對的
到mjpg那邊看影像就正常 OctoPrint那邊就是沒有影像出現!!
有重開機過,也有重安裝相機過了!ez ( 2016-12-14 )如對Linux不熟悉OctoPrint已經提供Image版本,不需要一步一步安裝,可以至官方網站下載