Ở 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.