ฉันพยายามตั้งค่าสภาพแวดล้อมที่เขียนโดยนักเทียบท่าซึ่งคอนเทนเนอร์ Nginx ได้รับคำขอ HTTPS จัดการ SSL และย้อนกลับพร็อกซีไปยังแอป dotnet-core ซึ่งใช้งาน HTTP เท่านั้น
มีการกล่าวถึงหัวข้อนี้ที่นี่หลายครั้ง และฉันพยายามสร้างการกำหนดค่าขั้นต่ำที่ตอบสนองวัตถุประสงค์นี้ ( คล้ายกับสิ่งนี้: NGINX SSL Pass-thru และ Docker )
ปัญหาคือว่า Nginx ตอบกลับด้วย 404 แม้ว่าจะถูกกำหนดค่าให้ร้องขอ proxy_pass ไปยังแอป dotnet-core ซึ่งปัจจุบันตอบสนองเพียง 'Hello world' ต่อคำขอทั้งหมด
nginx_1 | 2021/06/25 04:07:54 [ข้อผิดพลาด] 24#24: ไม่พบ *1 "/etc/nginx/html/index.html" (2: ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว) ลูกค้า: 210.61.91.199 เซิร์ฟเวอร์: tgdev.pillepalle1.de, คำขอ: "GET / HTTP/1.1", โฮสต์: "tgdev.pillepalle1.de"
ฉันเชื่อมต่อกับคอนเทนเนอร์และแตกการตั้งค่าจากที่นั่น
root@70e20feb4fae:/etc/nginx# ls -l
รวม 32
drwxr-xr-x 1 รูทรูท 4096 25 มิ.ย. 01:49 conf.d
-rw-r--r-- 1 รูท 1007 25 พฤษภาคม 12:28 fastcgi_params
-rw-r--r-- 1 รูทรูท 5290 25 พฤษภาคม 12:28 mime.types
lrwxrwxrwx 1 รูทรูท 22 25 พฤษภาคม 13:01 โมดูล -> /usr/lib/nginx/modules
-rw-r--r-- 1 รูทรูท 648 25 พฤษภาคม 13:01 น. nginx.conf
-rw-r--r-- 1 รูทรูท 636 25 พฤษภาคม 12:28 scgi_params
-rw-r--r-- 1 รูท 664 25 พฤษภาคม 12:28 น. uwsgi_params
root@70e20feb4fae:/etc/nginx# cat nginx.conf
ผู้ใช้ nginx;
worker_processes อัตโนมัติ
error_log /var/log/nginx/error.log ประกาศ;
pid /var/run/nginx.pid;
เหตุการณ์ {
worker_connections 1024;
}
http {
รวม /etc/nginx/mime.types;
แอปพลิเคชัน default_type/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request"'
'$สถานะ $body_bytes_sent "$http_referer"'
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log หลัก;
ส่งไฟล์บน;
#tcp_nopush บน;
keepalive_timeout 65;
#gzip บน;
รวม /etc/nginx/conf.d/*.conf;
}
root@70e20feb4fae:/etc/nginx/conf.d# ls
certbot.conf เริ่มต้น.conf
root@70e20feb4fae:/etc/nginx/conf.d# cat default.conf
เซิร์ฟเวอร์ {
ฟัง 80;
ฟัง [::]:80;
server_name localhost;
ที่ตั้ง / {
# ส่งคืน 301 https://$host/$request_uri;
proxy_pass http://tgwebapp:80;
}
}
เซิร์ฟเวอร์ {
ฟัง 443 ssl;
ฟัง [::]:443 ssl;
server_name localhost;
ssl_certificate /etc/letsencrypt/live/this/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/this/privkey.pem;
ที่ตั้ง / {
proxy_pass http://tgwebapp:80;
}
}
root@70e20feb4fae:/etc/nginx/conf.d# cat certbot.conf
เซิร์ฟเวอร์ {
ฟัง 80;
ฟัง [::]:80;
server_name localhost;
ที่ตั้ง /.well-known/ {
proxy_pass http://certbot;
}
}
ไม่มีรายการใดที่ nginx ควรทำให้บริการ /etc/nginx/html/index.html
. ฉันพลาดอะไรไป