LƯU Ý: Tôi đã hỏi câu hỏi này trước đây trên StackOverflow, không nhận được bất kỳ phản hồi nào.
Vâng, câu hỏi này đã được hỏi nhiều lần và vâng, tôi đã xem qua tất cả các giải pháp, chấp nhận hay không. Nhưng vẫn phải đối mặt với một vấn đề.
Tôi có thể truy cập trang web tại https://example.in nhưng Nginx không chuyển hướng http://example.in đến https://example.in
Tôi đang chạy NGINX bên trong docker.
Cấu hình Nginx là
người phục vụ {
nghe 80 default_server;
lắng nghe [::]:80 default_server;
server_name example.in www.example.in;
trả về 301 https://$server_name$request_uri;
}
người phục vụ {
nghe 443 ssl;
server_name example.in www.example.in;
ssl_certificate /etc/nginx/certs/example.in.crt;
ssl_certificate_key /etc/nginx/certs/example.in.key;
vị trí/tĩnh {
bí danh /vol/web/;
}
địa điểm / {
uwsgi_pass ${APP_HOST}:${APP_PORT};
bao gồm /etc/nginx/uwsgi_params;
client_max_body_size 10M;
}
}
Dockerfile cho Nginx là
TỪ nginx:1.21.3
Trình bảo trì LABEL="example.in"
SAO CHÉP ./default.conf.tpl /etc/nginx/default.conf.tpl
SAO CHÉP ./uwsgi_params /etc/nginx/uwsgi_params
SAO CHÉP ./data/certs/example.in.crt /etc/nginx/certs/
SAO CHÉP ./data/certs/example.in.key /etc/nginx/certs/
SAO CHÉP ./run.sh /run.sh
ENV LISTEN_PORT=8000
ENV APP_HOST=ứng dụng
ENV APP_PORT=9000
CHẠY mkdir -p /vol/static && \
chmod 755/vol/tĩnh && \
chạm /etc/nginx/conf.d/default.conf && \
chown nginx:nginx /etc/nginx/conf.d/default.conf && \
chmod +x /run.sh && \
chmod +r /etc/nginx/certs/example.in.crt && \
chmod +r /etc/nginx/certs/example.in.key
KHỐI LƯỢNG /vol/tĩnh
CMD ["/run.sh"]
docker-compose.yml
phiên bản: '3.9'
dịch vụ:
ứng dụng:
xây dựng:
bối cảnh: .
khởi động lại: luôn luôn
khối lượng:
- dữ liệu tĩnh:/vol/web
môi trường:
- ... (một số biến môi trường)
Ủy quyền:
xây dựng:
ngữ cảnh: ./proxy
khởi động lại: luôn luôn
phụ thuộc:
- ứng dụng
cổng:
- "80:8000"
- "443:443"
khối lượng:
- dữ liệu tĩnh:/vol/web
- ./data/certs:/etc/nginx/certs
khối lượng:
dữ liệu tĩnh:
Ứng dụng được đề cập ở đây là một ứng dụng web Django phục vụ các tệp tĩnh qua Nginx.
Tôi chưa bao giờ làm việc với Nginx trước đây.
Một số thông tin khác có thể hữu ích cho việc gỡ lỗi -
nhật ký bộ chứa docker <nginx-container-id>
không hiển thị bất kỳ nhật ký nào khi nó cố truy cập trên http.
- Đã kiểm tra với tường lửa linux và cổng 80 có thể truy cập được.
Tái bút: Cách đây vài ngày, tôi gặp phải một vấn đề khác với cấu hình Nginx, vấn đề này hoàn toàn ngược lại với vấn đề này. Nếu bạn cần một số tài liệu tham khảo về điều đó, xin vui lòng xem câu hỏi này. Mặc dù vậy, tôi đã có thể tự mình tìm ra giải pháp và chia sẻ nó ở đó.