Thông tin liên hệ
- 036.686.3943
- admin@nguoicodonvn2008.info
Khác với Apache, Nginx là máy chủ web phổ biến nhất hiện có. Ngoài việc là một máy chủ web, nó cũng có thể được sử dụng như một trình cân bằng tải hoặc reverse proxy. Trong hướng dẫn này, Quantrimang.com sẽ chỉ cho bạn cách có thể sử dụng Nginx làm reverse proxy.
Một proxy server hoạt động với vai trò trung gian giữa máy khách và máy chủ khác. Proxy server lấy tài nguyên từ máy chủ mà bạn muốn kết nối và gửi nó cho bạn để xem. Một reverse proxy hoạt động theo cùng một cách, ngoại trừ vai trò bị đảo ngược. Khi bạn yêu cầu thông tin từ máy chủ, reverse proxy sẽ giữ yêu cầu và gửi nó đến máy chủ backend thích hợp. Điều này cho phép quản trị viên hệ thống sử dụng máy chủ cho nhiều ứng dụng, cũng như đảm bảo luồng lưu lượng truy cập mượt mà hơn giữa máy khách và máy chủ.
Tùy thuộc vào ứng dụng của bạn, bạn có thể có các trường hợp sử dụng reverse proxy khác nhau.
Để thiết lập Nginx làm reverse proxy, bài viết sẽ sử dụng tham số proxy_pass trong file cấu hình Nginx.
Lưu ý: Hướng dẫn này giả định rằng bạn có một số kiến thức về Nginx và đã cài đặt, cũng như thiết lập Nginx trong máy chủ của bạn.
Trong hầu hết các trường hợp sử dụng, Nginx sẽ là máy chủ front-end, “lắng nghe” cổng 80 (HTTP) hoặc 443 (HTTPS) cho các yêu cầu đến. Vì chỉ có thể có một dịch vụ “nghe” trên cổng 80 hoặc 443, ứng dụng của bạn sẽ phải “nghe” trên một cổng khác, chẳng hạn như cổng 8081. Cấu hình đơn giản nhất sẽ giống như thế này:
server {
listen 80;
listen [::]:80;
server_name myapp.com;
location / {
proxy_pass http://localhost:8081/;
}
}
Điều này có nghĩa là tất cả các yêu cầu đến myapp.com tại cổng 80 sẽ được chuyển hướng đến cổng 8081.
Ngoài directive proxy_pass, có một số directive khác mà bạn có thể sử dụng để thiết lập nâng cao hơn.
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
Bạn có thể đặt tiêu đề proxy cần thiết để chuyển đến ứng dụng, cho nó biết IP yêu cầu và địa chỉ từ xa, sau đó xuất nội dung chính xác cho trang web yêu cầu.
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffers 32 4k;
Nếu ứng dụng của bạn gửi một số lượng lớn file, thì bạn có thể muốn vô hiệu hóa proxy_buffers:
proxy_buffering off;
Như bạn có thể thấy, Nginx là một máy chủ reverse proxy có rất nhiều công dụng. Điểm cộng lớn nhất về nó là cấu hình đơn giản, dễ sử dụng và vẫn cho phép bạn mở rộng quy mô trong các tình huống phức tạp hơn. Để biết thêm chi tiết, bạn có thể xem tài liệu mô-đun proxy Nginx (tại https://nginx.org/en/docs/http/ngx_http_proxy_module.html) hoặc các ví dụ cấu hình (tại https://www.nginx.com/resources/wiki/start/topics/examples/full/).
Chúc bạn thực hiện thành công!
Nguồn tin: Quantrimang.com
Ý kiến bạn đọc
Những tin mới hơn
Những tin cũ hơn