Files
justice/www/html/Game/public/trycss/game-justic2/server/APPLY-NGINX-FIX.md
T
2026-05-27 04:30:21 +00:00

2.7 KiB

แก้ 404 ที่ https://srv1361159.hstgr.cloud/realtimechat/

สาเหตุ

Nginx ยังไม่ชี้ path /realtimechat/ ไปที่โฟลเดอร์ที่มี index.html (มักอยู่ที่ .../realtimechat/public/)


วิธีที่ 1: แก้ด้วยมือ (แนะนำ)

1) SSH เข้าเซิร์ฟเวอร์ แล้วเปิดไฟล์ config

sudo nano /etc/nginx/sites-available/srv1361159.hstgr.cloud

(ถ้าใช้ชื่ออื่น ใช้ไฟล์ที่มี server_name srv1361159.hstgr.cloud)

2) ในบล็อก server { ... } ให้มีแบบนี้ (ถ้ามีอยู่แล้วให้แก้ให้ตรง)

location /realtimechat/ {
    alias /var/www/html/realtimechat/public/;
    index index.html;
    try_files $uri $uri/ /realtimechat/index.html;
}

location /realtimechat/socket.io/ {
    proxy_pass http://127.0.0.1:3000;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    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;
}

3) เช็ค path ว่ามีไฟล์จริง

ls -la /var/www/html/realtimechat/public/index.html
  • ถ้า ไม่มี แสดงว่าไฟล์อยู่คนละที่ เช่น /var/www/html/realtimechat/index.html
    → ใช้ alias /var/www/html/realtimechat/; แทน (ไม่มี public)

4) ทดสอบและ reload Nginx

sudo nginx -t
sudo systemctl reload nginx

5) เปิด Node (realtimechat) ถ้ายังไม่รัน

sudo systemctl start realtimechat
sudo systemctl enable realtimechat

วิธีที่ 2: ใช้สคริปต์ช่วยเช็ค path

รันบนเซิร์ฟเวอร์:

# ดูว่า index.html อยู่ที่ไหน
ls /var/www/html/realtimechat/index.html 2>/dev/null && echo "อยู่ที่ realtimechat/"
ls /var/www/html/realtimechat/public/index.html 2>/dev/null && echo "อยู่ที่ realtimechat/public/"
  • ถ้าอยู่ที่ realtimechat/public/ → ใช้ alias .../realtimechat/public/;
  • ถ้าอยู่ที่ realtimechat/ → ใช้ alias .../realtimechat/;

หลังแก้แล้ว

เปิด: https://srv1361159.hstgr.cloud/realtimechat/
ควรเห็นหน้า realtimechat แทน 404