Cấu hình Nginx Reverve Proxy hỗ trợ SSL

0
433
(Last Updated On: Th12 19, 2018)

Ở những bài viết trước mình đã có đề cập tới sử dụng Nginx làm Reverse Proxy cho các Web Server khác (như Nginx, Apache2,…). Tuy nhiên chưa có cấu hình SSL kèm theo. Vì thế nếu trang nào cần cấu hình để bảo mật với SSL thì gặp trở ngại. Hôm nay mình xin phép bổ sung cho đủ bộ.

Dưới đây là tập tin cấu hình:

server {
  listen 80;
  server_name vngeek.com;
return 301 https://vngeek.com;
}
 server {
    listen 443 ssl; # managed by Certbot
	server_name vngeek.com;
    ssl_certificate /etc/letsencrypt/live/vngeek.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/vngeek.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
  location / {
    proxy_set_header  Host $host;
    proxy_set_header  X-Real-IP $remote_addr;
    proxy_set_header  X-Forwarded-Proto https;
    proxy_set_header  X-Forwarded-For $remote_addr;
    proxy_set_header  X-Forwarded-Host $remote_addr;
    proxy_pass        http://server.vngeek.net;
proxy_connect_timeout       300;
proxy_send_timeout          300;
proxy_read_timeout          300;
send_timeout                300;
  }
}

Trong đó: proxy_pass: bạn trỏ về địa chỉ trang web (ở chế độ http thông thường). Bởi các tập tin cần thiết cho kết nối SSL tất cả đều nằm trên Proxy Server.

Hy vọng bài viết giúp đỡ được bạn chút ít.

Bonus: 

server {
  listen 80;
  server_name vngeek.com;
return 301 https://vngeek.com;
}
 server {
    listen 443 ssl; # managed by Certbot
	server_name vngeek.com;
    ssl_certificate /etc/letsencrypt/live/vngeek.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/vngeek.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
  location / {
    proxy_set_header  Host $host;
    proxy_set_header  X-Real-IP $remote_addr;
    proxy_set_header  X-Forwarded-Proto https;
    proxy_set_header  X-Forwarded-For $remote_addr;
    proxy_set_header  X-Forwarded-Host $remote_addr;
    proxy_pass        http://server.vngeek.net;
proxy_connect_timeout       300;
proxy_send_timeout          300;
proxy_read_timeout          300;
send_timeout                300;
  }

}
server {
  listen 80;
  server_name image.vngeek.com;
  location / {
    proxy_set_header  Host $host;
    proxy_set_header  X-Real-IP $remote_addr;
    proxy_set_header  X-Forwarded-For $remote_addr;
    proxy_set_header  X-Forwarded-Host $remote_addr;
    proxy_pass        http://server1.vngeek.net;
proxy_connect_timeout       300;
proxy_send_timeout          300;
proxy_read_timeout          300;
send_timeout                300;
  }
}

Cấu hình ở trên đó là Nginx làm Proxy thêm cho máy chủ http://server1.vngeek.net khi trình khách truy cập vào địa chỉ image.vngeek.com.

Bình luận