Cách sử dụng
- Nhập tên miền và chọn loại trang — địa chỉ upstream cho reverse proxy hoặc thư mục web cho loại khác.
- Bật HTTPS, HTTP/2, HSTS, chuyển www, gzip, cache và header bảo mật nếu cần.
- Sao chép hoặc tải cấu hình vào /etc/nginx/conf.d/, chạy nginx -t rồi reload nginx.
Giải thích tùy chọn
- Reverse proxy
- Chuyển tiếp tới địa chỉ upstream và gửi Host, X-Real-IP, X-Forwarded-For, X-Forwarded-Proto để backend thấy IP và giao thức thật của khách.
- Ứng dụng một trang
- Đường dẫn không biết được trả về index.html để router history-mode (React Router, Vue Router) không 404 khi tải lại.
- HTTPS
- Đường dẫn chứng chỉ theo mặc định certbot (Let's Encrypt) và request HTTP được chuyển 301 sang HTTPS. HTTP/2 dùng dạng listen 443 ssl http2, chạy trên mọi phiên bản nginx.
- HSTS
- Báo trình duyệt chỉ dùng HTTPS cho tên miền và mọi tên miền con trong một năm. Hãy chắc chắn mọi tên miền con hỗ trợ HTTPS trước, nếu không chúng sẽ không truy cập được.
Ví dụ: ứng dụng một trang với HTTPS và www
Với tên miền example.com, Ứng dụng một trang, HTTPS, HTTP/2 và Cũng phục vụ www. và chuyển hướng tới đó được tích (còn Nén Gzip, Header bảo mật và Cache dài cho tệp tĩnh được tắt để giữ ngắn gọn), trình tạo ghi ra ba khối server:
- Cổng 80 phục vụ cả hai tên, giữ cho
/.well-known/acme-challenge/truy cập được để gia hạn chứng chỉ và chuyển mọi thứ còn lại tớihttps://example.com$request_uribằng mã 301. - Cổng 443 cho
www.example.comdùng cùng chứng chỉ và trả về mã 301 tới tên miền không có www. - Cổng 443 cho
example.comphục vụ trang web:
root /var/www/example.com;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
Cả hai khối HTTPS đều trỏ tới /etc/letsencrypt/live/example.com/fullchain.pem và privkey.pem, cho phép TLS 1.2 và 1.3 và dùng bộ nhớ đệm phiên dùng chung 10 MB với thời gian chờ phiên một ngày. Dòng try_files là thứ khiến việc tải lại ở một route phía client như /settings trả về ứng dụng thay vì lỗi 404.
Câu hỏi thường gặp
Vì sao nginx -t cảnh báo tham số http2 đã lỗi thời?
Từ nginx 1.25.1, chỉ thị http2 on; riêng được khuyến nghị, nhưng bản 1.24 — có trong Ubuntu 24.04 và hệ khác — chưa hiểu. Dạng listen ... http2 chạy ở mọi nơi; bản mới chỉ in cảnh báo.
Chứng chỉ có cần gồm www không?
Có khi bật chuyển www. Hãy yêu cầu cả hai tên, ví dụ certbot -d example.com -d www.example.com.
Tải lên lỗi 413 Request Entity Too Large thì sao?
Mặc định nginx cho body request 1 MB. Đặt Kích thước tải lên tối đa theo nhu cầu, chẳng hạn 100.
Kết nối WebSocket qua proxy thất bại?
Proxy phải chuyển tiếp header Upgrade và Connection. Bật hỗ trợ WebSocket sẽ thêm chúng và tăng timeout đọc lên một giờ.
Quyền riêng tư
Công cụ này chạy hoàn toàn trong trình duyệt của bạn. Tệp và văn bản được xử lý ngay trên thiết bị và không bao giờ được tải lên máy chủ của chúng tôi.