wcm2025 網際內容管理 Scrum-1 demo 網站

  • Home
    • SMap
    • reveal
    • blog
  • About
    • list
    • Fossil
  • Tasks
    • task1
    • task2
    • task2.5
      • IPv6
    • task3
      • mind-map
    • task4
  • Reeborg
    • Challenge
    • Tutorial
    • Examples
    • rb
      • Program
    • Packages
    • URL
      • Parameters
  • Homework
    • HW1
      • Steps
      • Commands
    • HW2
  • Midterm
  • Final
  • Brython
Commands << Previous Next >> Midterm

HW2

作業二 (20%): 在各種不同環境下的操作系統中配置 Reeborg's world (原始碼)

在 HW1 所建立的各種 nginx 伺服器與個人網站中配置 Reeborg 機器人程式, 並將所練習的 Python 程式放入網站的 downloads 目錄中, 逐步強化練習個人的 Python 程式語法. 並隨著各式課程的學習, 嘗試利用網際程式方法解題.


在 Windows 利用 Virtualbox 建立 wXX.mde.nfu.edu.tw 虛擬主機伺服器:

  1. 下載 win10.vdi
  2. 在 Virtualbox 7.1 之前的版本配置既有的虛擬主機檔案, 記憶體配置 8GB 以上, 將虛擬主機名稱設為 wXX, network 設為橋接至電腦的實體網卡
  3. 首次啟動 wXX 虛擬主機, 修改管理者密碼, 利用 IPv6 說明設定所分配到的 IPv6 網路位址
  4. 確定網路連線正常, 並可透過 proxy 設定讓瀏覽器連線至任何網站, 允許遠端桌面連線後關閉虛擬主機
  5. 透過 nssm 與 C:\Program Files\Oracle\VirtualBox\VBoxHeadless.exe 讓所建立的虛擬主機成為實體主機的服務
  6. 以管理者身分啟動 cmd 後, 執行實體目錄位置下的 nssm.exe, 例如: E:\portable_wcm2025\data\nssm install wXX
  7. 利用 C:\Program Files\Oracle\VirtualBox\VBoxHeadless.exe -startvm wXX 指令, 以 wXX 服務啟動
  8. 以滑鼠右鍵點擊"開始", 選擇"電腦管理", 將 wXX 服務設為"延遲自動啟動"後, 啟動 wXX 虛擬主機 
  9. 遠端登入 wXX 虛擬主機後, 下載 nginx 並完成設定 , 讓 wXX.mde.nfu.edu.tw 可以透過 http 與 https 啟動

在 wXX.mde.nfu.edu.tw 主機設定 certbot, 以 https://wXX.mde.nfu.edu.tw 啟動:

  1. 可以直接讓 https://wXX.mde.nfu.edu.tw 伺服 Reeborg: https://mde.tw/reeborg/ 
  2. 或者結合 waitress 以 https://wXX.mde.nfu.edu.tw 編輯作業倉儲的動態網站內容, 並讓靜態網站透過 http://wXX.mde.nfu.edu.tw 連線

基本設定檔案:  nginx.conf, start_waitress.py 

若要將 nginx port 80 轉為倉儲的靜態內容, 則可以採用以下設定:

nginx.conf

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       [::]:80 ipv6only=on;
        server_name  wXX.mde.nfu.edu.tw;

        #root   html;
        # 將 port 80 http 連結到倉儲的靜態網站
        # 將 root 指向靜態倉儲目錄, 特別注意不要使用反斜線
        root C:/Users/wcm/Downloads/portable_wcm2025_w10/data/tmp/wcm2025_hw;
        index  index.html;

        location / {
            try_files $uri $uri/ =404;
        }
    }

    server {
        listen       [::]:443 ssl ipv6only=on;
        http2        on;
        server_name  wXX.mde.nfu.edu.tw;

        ssl_certificate      fullchain.pem;
        ssl_certificate_key  privkey.pem;
        ssl_protocols        TLSv1.2 TLSv1.3;
        ssl_ciphers          HIGH:!aNULL:!MD5;

        location / {
            # https port 443 的連結資料是由近端 IPv6 port 8080 所提供
            # port 8080 的資料是有 python start_waitress.py 提供
            proxy_pass         http://[::1]:8080;
            proxy_set_header   Host $host;
            proxy_set_header   X-Real-IP $remote_addr;
            proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header   X-Forwarded-Proto $scheme;
        }
    }
}

start_waitress.py

from waitress import serve
from cmsimde import flaskapp
serve(flaskapp.app, listen='localhost:8080', threads=8)

之後, 若已經將 http 指向倉儲的靜態網站, 就可以利用 git clone https://github.com/mdecycu/reeborg.git 將機器人程式放入 reeborg 目錄中, 並且以下列連結開啟:

http://w99.mde.nfu.edu.tw/reeborg/?lang=en&mode=python&menu=worlds%2Fmenus%2Fselect_collection_en.json&name=Alone&url=worlds%2Ftutorial_en%2Fharvest1.json&editor=python%2Fharvest1.py 


Commands << Previous Next >> Midterm

Copyright © All rights reserved | This template is made with by Colorlib