Khi triển khai nhiều ứng dụng bằng Docker, việc quản lý truy cập và routing request trở nên quan trọng. Nginx có thể đóng vai trò như một Reverse Proxy để phân phối request đến các container tương ứng.
1. Cài đặt Nginx
Trước tiên, hãy cài đặt Nginx trên hệ thống:
sudo apt update && sudo apt install -y nginx
Kiểm tra trạng thái Nginx:
sudo systemctl status nginx
2. Cấu hình Nginx làm Reverse Proxy
Mở file cấu hình Nginx:
sudo vi /etc/nginx/sites-available/reverse-proxy
Thêm nội dung sau để chuyển tiếp request từ domain đến container:
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://localhost:8080;
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;
}
}
Lưu file và tạo symlink để kích hoạt cấu hình:
sudo ln -s /etc/nginx/sites-available/reverse-proxy /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
3. Chạy Docker Container với Reverse Proxy
Ví dụ chạy một container Nginx trên port 8080:
docker run -d --name my-nginx -p 8080:80 nginx
Bây giờ, khi truy cập http://example.com
, request sẽ được chuyển đến container.
4. Bảo mật với SSL (Let’s Encrypt)
Phần này bạn muốn làm tiếp thì yêu cầu server bạn đang làm cần phải có địa chỉ IP public và trỏ domain vào địa chỉ IP public của server.
Cài đặt Certbot:
sudo apt install -y certbot python3-certbot-nginx
Tạo chứng chỉ SSL:
sudo certbot --nginx -d example.com
Kiểm tra SSL tự động gia hạn:
sudo certbot renew --dry-run
Kết luận
Bạn đã thiết lập thành công Nginx làm Reverse Proxy cho Docker Containers. Điều này giúp quản lý traffic hiệu quả và tăng cường bảo mật với SSL.