OctoPrint 遠端控制 3D印表機 修改網頁為 80 Port (使用Raspberry Pi 樹莓派) OctoPrint 遠端控制 3D印表機 修改網頁為 80 Port (使用Raspberry Pi 樹莓派)
  3D印表機 、   Raspberry Pi 、   OctoPrint       ez      2015-06-23

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

完成設定了!


標籤:   3D印表機 、   OctoPi 、   OctoPrint 、   Raspberry Pi

留言

洪小展   ( 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版本,不需要一步一步安裝,可以至官方網站下載

我要留言