Score:0

Nginx http ไม่เปลี่ยนเส้นทางไปที่ https

ธง pl

หมายเหตุ: ฉันถามคำถามนี้ก่อนหน้านี้ใน StackOverflow ไม่ได้รับคำตอบใดๆ


ใช่ คำถามนี้ถูกถามหลายครั้ง และใช่ ฉันได้ผ่านการแก้ปัญหาทั้งหมดแล้ว ยอมรับหรือไม่ แต่ยังคงประสบปัญหา

ฉัน สามารถเข้าถึงได้ เว็บไซต์ได้ที่ https://example.in แต่ Nginx ไม่ได้เปลี่ยนเส้นทาง http://example.in ถึง https://example.in

ฉันใช้ NGINX ภายในนักเทียบท่า

การกำหนดค่า Nginx คือ

เซิร์ฟเวอร์ {
        ฟัง 80 default_server;
        ฟัง [::]:80 default_server;

        server_name example.in www.example.in;

        ส่งคืน 301 https://$server_name$request_uri;
}

เซิร์ฟเวอร์ {
        ฟัง 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;

        ตำแหน่ง / คงที่ {
                นามแฝง /vol/web/;
        }

        ที่ตั้ง / {
                uwsgi_pass ${APP_HOST}:${APP_PORT};
                รวม /etc/nginx/uwsgi_params;
                client_max_body_size 10M;
        }
}

Dockerfile สำหรับ Nginx คือ

จาก nginx:1.21.3
ผู้ดูแล LABEL="example.in"

สำเนา ./default.conf.tpl /etc/nginx/default.conf.tpl
สำเนา ./uwsgi_params /etc/nginx/uwsgi_params
สำเนา ./data/certs/example.in.crt /etc/nginx/certs/
สำเนา ./data/certs/example.in.key /etc/nginx/certs/
คัดลอก ./run.sh /run.sh

ENV LISTEN_PORT=8000
ENV APP_HOST=แอป
ENV APP_PORT=9000

RUN mkdir -p /vol/static && \
    chmod 755 /vol/static && \
    แตะ /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

VOLUME / ปริมาตร / คงที่

CMD ["/รัน.sh"]

นักเทียบท่า-compose.yml

รุ่น: '3.9'

บริการ:
  แอป:
    สร้าง:
      บริบท: .
    รีสตาร์ท: เสมอ
    ปริมาณ:
      - ข้อมูลคงที่:/vol/web
    สิ่งแวดล้อม:
      - ... (ตัวแปรสภาพแวดล้อมบางอย่าง)
    
  พร็อกซี:
    สร้าง:
      บริบท: ./proxy
    รีสตาร์ท: เสมอ
    ขึ้นอยู่กับ:
      - แอป
    พอร์ต:
      - "80:8000"
      - "443:443"
    ปริมาณ:
      - ข้อมูลคงที่:/vol/web
      - ./data/certs:/etc/nginx/certs

ปริมาณ:
  ข้อมูลคงที่:

แอพที่กล่าวถึงในที่นี้คือเว็บแอพ Django ที่ให้บริการไฟล์คงที่ผ่าน Nginx

ฉันไม่เคยทำงานกับ Nginx มาก่อน

ข้อมูลเพิ่มเติมบางอย่างที่อาจเป็นประโยชน์สำหรับการดีบัก -

  1. บันทึกคอนเทนเนอร์นักเทียบท่า <nginx-container-id> ไม่แสดงบันทึกใด ๆ สำหรับการพยายามเข้าถึงบน http
  2. ตรวจสอบด้วยไฟร์วอลล์ linux และพอร์ต 80 สามารถเข้าถึงได้

PS: หลายวันก่อน ฉันประสบปัญหาอื่นกับการกำหนดค่า Nginx ซึ่งตรงกันข้ามกับสิ่งนี้ หากคุณต้องการการอ้างอิงถึงสิ่งนั้น โปรดดู คำถามนี้. ฉันสามารถหาทางออกได้ด้วยตนเองและแบ่งปันมันที่นั่น

in flag
โปรดแสดงพอร์ตที่คุณแมปกับนักเทียบท่า
Japkeerat Singh avatar
pl flag
@GeraldSchneider เพิ่ม
in flag
และกรุณาอย่าข้ามโพสต์ นอกเหนือจากที่คำถามของคุณอยู่นอกหัวข้อสำหรับ [ดังนั้น] แล้ว ไม่อนุญาตให้มีการโพสต์ข้ามเครือข่ายบนเครือข่าย Stack Exchange
Japkeerat Singh avatar
pl flag
ฉันไม่รู้ว่ามันไม่อนุญาต ขอโทษด้วย.
Score:1
ธง in

คุณกำลังแมปพอร์ต 80 กับพอร์ต 8000 ใน docker-compose.yml ของคุณ คำขอของคุณไม่ถึง nginx

พอร์ต:
  - "80:80"
  - "443:443"
Japkeerat Singh avatar
pl flag
ไม่ตระหนักถึงสิ่งนี้ ฉันกำลังมองหาข้อผิดพลาดในทุกที่ แต่สิ่งนี้ ขอบคุณมาก!

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา