跳到主要內容

精選

遊戲伺服器2025年初架設與研究part11-Websocket與Unity的登入+聊天室精簡版

 那先前使用Websocket的內容經過一段時間研究 也算是有了一些進展 並且先前也有人對於websocket那篇筆記一次講的內容有點太多,會不好理解 導致可能中途就遭遇了一些BUG比較難解決的 那這次就把相關的內容進行了一些精簡 讓大家可以更快速的架設好websocket的內容 當然這邊也可以當作是不同的使用方式 隨著學習各種不同的資訊,也能更清楚地理解這些其實是不同的使用方式。 因此,這方面完全可以多學幾種,以便因應各種不同的情況。 首先是 Unity 專案的準備 我們必須把常用的 Websocket 插件準備好(Unity) https://github.com/endel/NativeWebSocket 這是較多人使用的 Websocket 插件 可以根據Github那邊寫的資訊進行操作 匯入 到Unity專案內 那我這邊也直接提供方式 首先在你的Unity專案中,上方的選單選擇Window 底下選到 Package Manager 打開Package Manager 點選有URL的選項( Install package from git URL ) 接著請在這個URL框內輸入對應的內容 也就是 https://github.com/endel/NativeWebSocket.git#upm 輸入好之後就點擊最右邊的install安裝就好了 安裝好會如圖這樣我們可以看到 Native WebSockets 插件會在這個位置 如果需要更新,可以在右邊的選單點Update即可 這樣在Unity內就可以使用Websocket相關的語法了 接著我們回到伺服器的地方,也就是我們的 Ubuntu server 首先確保在虛擬環境當中進行安裝 websocket 插件 簡單的確認方式就是看現在輸入的位置前方有無 (venv) 確認好之後可以進行安裝pip install websockets 接著請在想要執行的位置新增一個python檔案(.py) 我這邊是在自己電腦的python專案內新增了一個python檔案main.py 內容如下 import asyncio import websockets import json co...

遊戲伺服器2025年初架設與研究part8透過Certbot與Nginx搭配使用自動續約Let's EncryptSSL憑證完成雙向https

 這次來整理一下常見的SSL自動續約機制


當然這邊是已經使用了Cloudflare搭配網域有了https的狀態

伺服器系統使用Ubuntu主板號22的(22.0.XX)

首先可以先從Cloudflare後台開始

點選SSL/TLS的選項,右邊點"設定"

應該就會看到加密預設應該會是"彈性"

那彈性的意思就是透過Cloudflare到使用者那邊會是https

但是Cloudflare到你的伺服器,則沒有強制https,也就是說可以http

那一般來說,沒有特別處理的話,這邊轉發後就會只有http

但即便只有這一小段,還是會有些風險存在的

加上有部分連線會要求整段連線都必須是https(檢查整段連線)

那主要這邊就是簡單說明一下如何設定成"完整"

當然處理完之前還先別改成完整

避免底下操作有異常,等SSL憑證的部分完成再調整設定

完整的話就可以整段都是https(包含使用者<-->Cloudflare<-->你的伺服器)

那完整(嚴格)的話,通常就是要錢的,這邊就先不考慮

當然你也可以當作等級跟安全性更高的而選擇使用完整(嚴格)

這邊以能設定成"完整"為主

雖然之前也有稍微帶過,不過這邊就再補充詳細一些

可以透過Certbot來取得憑證,就可以把這段也透過https來發送了

Nginx + Certbot來處理SSL

那首先安裝指令我先列出來

sudo apt install -y certbot python3-certbot-nginx

接下來使用nginx的設定檔來建立轉發的站點

先前雖然也有大概帶過,不過這邊一併說明

先創建設定檔

sudo nano /etc/nginx/sites-available/myproject

後面的myproject可以自己取名字,可能是專案名,也可以是網域名等等的,方便好記


server {
    listen 80;
    listen [::]:80;
    server_name example.com www.example.com;
    }
    
location / {
    proxy_pass http://unix:/home/deployuser/projects/myapp/myapp.sock;
    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;
    }

接著是連接設定檔,記得網域的名稱要替換掉

然後proxy_pass的路徑記得調整成自己放置的路徑例如http://127.0.0.1:5666(我是先放了個python首頁,不過可能不是必要的)


sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled/
sudo nginx -t   # 測試設定語法
sudo systemctl reload nginx


這邊主要就是把編寫好的設定檔連結到啟用的區域去執行

執行前記得需要-t進行測試

如果內容沒有問題則會得到success ok兩個綠色的成功

接下來執行以下指令

sudo certbot --nginx -d example.com -d www.example.com

注意那兩個example都是自己的網域,兩個替換好再送出

接下來會有一個流程操作,根據版本可能會有些許不同的問題,或是顯示方式

不過基本上主要就是以下這幾個

詢問輸入 email、同意 TOS、選擇是否 redirect all traffic to HTTPS(通常選 Yes)

並且它還會自動修改你剛剛的nginx設定檔

所以整個流程跑完後去看nginx內容有不一樣是正常的

完成後也可以進行一次測試,接著讓它reload

sudo nginx -t

sudo systemctl reload nginx

這樣應該就能正常運作了

並且先前Cloudflare的安全性設置也可以調整成完整了

這邊也提供一個可以檢查SSL憑證時間的指令

sudo systemctl list-timers | grep certbot

這次就先分享到這邊,如果還有什麼疑問,歡迎提問

如果有講錯的地方,也歡迎提出來~





留言