Tôi cố gắng thiết lập môi trường docker-compose trong đó bộ chứa Nginx nhận các yêu cầu HTTPS, xử lý SSL và đảo ngược proxy chúng thành ứng dụng dotnet-core chỉ triển khai HTTP.
Chủ đề này đã được thảo luận ở đây nhiều lần và tôi đã cố gắng tạo một cấu hình tối thiểu chỉ phục vụ mục đích này ( Tương tự như sau: NGINX SSL Pass-thru và Docker )
Vấn đề là, Nginx phản hồi với 404 mặc dù đã được định cấu hình cho các yêu cầu proxy_pass tới ứng dụng dotnet-core hiện chỉ phản hồi 'Xin chào thế giới' cho tất cả các yêu cầu.
nginx_1 | 25/06/2021 04:07:54 [lỗi] 24#24: *1 "/etc/nginx/html/index.html" không tìm thấy (2: Không có tệp hoặc thư mục như vậy), máy khách: 210.61.91.199, máy chủ: tgdev.pillepalle1.de, yêu cầu: "GET / HTTP/1.1", máy chủ: "tgdev.pillepalle1.de"
Tôi đã kết nối với vùng chứa và trích xuất thiết lập từ đó
root@70e20feb4fae:/etc/nginx# ls -l
tổng số 32
drwxr-xr-x 1 gốc gốc 4096 ngày 25 tháng 6 01:49 conf.d
-rw-r--r-- 1 gốc gốc 1007 ngày 25 tháng 5 12:28 fastcgi_params
-rw-r--r-- 1 root root 5290 25 tháng 5 12:28 mime.types
lrwxrwxrwx 1 root root 22 May 25 13:01 modules -> /usr/lib/nginx/modules
-rw-r--r-- 1 root root 648 25 tháng 5 13:01 nginx.conf
-rw-r--r-- 1 root root 636 25 tháng 5 12:28 scgi_params
-rw-r--r-- 1 root root 664 25 tháng 5 12:28 uwsgi_params
root@70e20feb4fae:/etc/nginx# cat nginx.conf
người dùng nginx;
worker_processes tự động;
thông báo error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
sự kiện {
công_nhân kết_nối 1024 ;
}
http {
bao gồm /etc/nginx/mime.types;
ứng dụng default_type/octet-stream;
log_format chính '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log chính;
gửi tệp trên;
#tcp_nopush bật;
keepalive_timeout 65;
#gzip trên;
bao gồm /etc/nginx/conf.d/*.conf;
}
root@70e20feb4fae:/etc/nginx/conf.d# ls
certbot.conf default.conf
root@70e20feb4fae:/etc/nginx/conf.d# cat default.conf
người phục vụ {
nghe 80;
nghe [::]:80;
máy chủ_tên máy chủ cục bộ;
địa điểm / {
# trả lại 301 https://$host/$request_uri;
proxy_pass http://tgwebapp:80;
}
}
người phục vụ {
nghe 443 ssl;
nghe [::]:443 ssl;
máy chủ_tên máy chủ cục bộ;
ssl_certificate /etc/letsencrypt/live/this/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/this/privkey.pem;
địa điểm / {
proxy_pass http://tgwebapp:80;
}
}
root@70e20feb4fae:/etc/nginx/conf.d# mèo certbot.conf
người phục vụ {
nghe 80;
nghe [::]:80;
máy chủ_tên máy chủ cục bộ;
địa điểm /.well-known/ {
proxy_pass http://certbot;
}
}
Không có mục nhập nào khiến nginx phải phân phối /etc/nginx/html/index.html
. Tôi đang thiếu gì?