2.7 KiB
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