วิธีใช้งาน
- ป้อนโดเมน และเลือกประเภทเว็บไซต์ — ใส่ upstream address สำหรับ reverse proxy หรือ web root สำหรับประเภทอื่น
- เลือก HTTPS, HTTP/2, HSTS, www redirect, gzip, caching และ security headers ตามต้องการ
- คัดลอกหรือดาวน์โหลด config ไปไว้ใน /etc/nginx/conf.d/, รัน nginx -t และ reload nginx
คำอธิบายตัวเลือก
- Reverse proxy
- ส่งต่อไปยัง upstream address และส่งต่อ Host, X-Real-IP, X-Forwarded-For และ X-Forwarded-Proto เพื่อให้ backend เห็น IP จริงและ scheme ของผู้เข้าชม
- Single-page app
- เส้นทางที่ไม่รู้จักกลับไปยัง index.html เพื่อให้ history-mode routers (React Router, Vue Router) ไม่ 404 เมื่อโหลดซ้ำ
- HTTPS
- เส้นทางใบรับรองตามค่าเริ่มต้นของ certbot (Let's Encrypt) และคำขอ HTTP ได้รับการเปลี่ยนเส้นทาง 301 ไปยัง HTTPS. HTTP/2 ใช้รูปแบบ listen 443 ssl http2 ซึ่งใช้ได้กับ nginx ทุกเวอร์ชัน
- HSTS
- บอกเบราว์เซอร์ให้ใช้ HTTPS เท่านั้นสำหรับโดเมนและ subdomains ทั้งหมดเป็นเวลาหนึ่งปี ตรวจสอบให้แน่ใจว่า subdomain ทุกตัวรองรับ HTTPS ก่อน หรือจะไม่สามารถเข้าถึงได้
ตัวอย่าง: แอปหน้าเดียวพร้อม HTTPS และ www
ด้วยโดเมน example.com, แอปหน้าเดียว, HTTPS, HTTP/2 และติ๊ก “ตอบ www. และเปลี่ยนเส้นทาง” (ปิด “บีบอัดด้วย Gzip”, “ส่วนหัวความปลอดภัย” และ “แคชนานสำหรับไฟล์สแตติก” เพื่อให้สั้น) ตัวสร้างเขียน server block สามชุด:
- พอร์ต 80 ตอบทั้งสองชื่อ คงให้เข้าถึง
/.well-known/acme-challenge/ได้สำหรับการต่ออายุใบรับรอง และส่งทุกอย่างอื่นไปที่https://example.com$request_uriด้วย 301 - พอร์ต 443 สำหรับ
www.example.comใช้ใบรับรองเดียวกันและส่ง 301 ไปยังโดเมนเปล่า - พอร์ต 443 สำหรับ
example.comให้บริการไซต์:
root /var/www/example.com;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
บล็อก HTTPS ทั้งสองชี้ไปที่ /etc/letsencrypt/live/example.com/fullchain.pem และ privkey.pem อนุญาต TLS 1.2 และ 1.3 และใช้แคชเซสชันร่วมขนาด 10 MB พร้อมหมดเวลาเซสชันหนึ่งวัน บรรทัด try_files ทำให้การรีโหลดบนเส้นทางฝั่งไคลเอนต์ เช่น /settings ได้แอปกลับมาแทน 404
คำถามที่พบบ่อย
ทำไม nginx -t ถึงเตือนว่า http2 parameter ตัวพารามิเตอร์ deprecated ?
ตั้งแต่ nginx 1.25.1 ต้องการให้ใช้ http2 on; เป็น directive แยก แต่เวอร์ชัน 1.24 — ที่มาด้วย Ubuntu 24.04 และอื่น ๆ — ยังไม่รองรับ รูปแบบ listen ... http2 ใช้ได้ทุกเวอร์ชัน เวอร์ชันใหม่เพียงแต่แสดงคำเตือนเท่านั้น
ใบรับรองต้องรวม www ไหม?
ใช่ เมื่อ www redirect เปิด ขอทั้งสองชื่อ เช่น certbot -d example.com -d www.example.com
อัปโหลดล้มเหลวด้วย 413 Request Entity Too Large?
nginx อนุญาตให้มี request body ขนาด 1 MB โดยค่าเริ่มต้น ตั้ง Max upload size ตามต้องการ เช่น 100
WebSocket connections ล้มเหลวผ่าน proxy?
Proxy ต้องส่งต่อ Upgrade และ Connection headers เมื่อเลือก WebSocket support จะเพิ่มมัน และตั้ง read timeout เป็นหนึ่งชั่วโมง
ความเป็นส่วนตัว
เครื่องมือนี้ทำงานในเบราว์เซอร์ของคุณทั้งหมด ไฟล์และข้อความของคุณได้รับการประมวลผลบนอุปกรณ์ของคุณ และจะไม่ถูกอัปโหลดไปยังเซิร์ฟเวอร์ของเรา