Hướng dẫn cài đặt Nginx Reverse Proxy cho Docker Containers

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.

Chia sẻ bài viết:
Theo dõi
Thông báo của
0 Góp ý
Được bỏ phiếu nhiều nhất
Mới nhất Cũ nhất
Phản hồi nội tuyến
Xem tất cả bình luận

Có thể bạn quan tâm