Score:0

Nginx ให้บริการหลายรายการผ่าน https บนพอร์ตอื่น

ธง cn

เว็บไม่ใช่สาขาของฉัน แต่ฉันคิดว่าฉันจัดการได้

จุดประสงค์ค่อนข้างง่าย:

มี 3 บริการที่ฉันต้องการให้บริการจาก Virtual Machine เครื่องเดียวกันในเครือข่ายเดียวกัน

ยืดหยุ่น:8881 > ssl > :8881 kibana:5601 > ssl > :8882 เว็บเซิร์ฟเวอร์:80 > ssl < :443

ฉันจัดการเพื่อให้บริการ elastic และ kibana โดยไม่มีปัญหาใด ๆ ตามเอกสารประกอบพร้อมการกำหนดค่านี้บน nginx :

/etc/nginx/conf.d/servestuff.conf

ssl_certificate /etc/ssl/certs/nginx-autosigne.crt;
ssl_certificate_key /etc/ssl/private/nginx-autosigne.key;

การค้นหาแบบยืดหยุ่นต้นน้ำ {
    เซิร์ฟเวอร์ 127.0.0.1:9200;
    Keepalive 15;
  }

ต้นน้ำ kibana {
    เซิร์ฟเวอร์ 127.0.0.1:5601;
    Keepalive 15;
  }

เซิร์ฟเวอร์ {
    ฟัง 8881 ssl;

    ที่ตั้ง / {
      auth_basic "จำกัดการเข้าถึง";
      auth_basic_user_file /etc/nginx/htpasswd.users;


      proxy_pass http://elasticsearch;
      ปิด proxy_redirect;
      ปิด proxy_buffering;

      proxy_http_version 1.1;
      การเชื่อมต่อ proxy_set_header "Keep-Alive";
      proxy_set_header การเชื่อมต่อพร็อกซี "Keep-Alive";
    }

  }
เซิร์ฟเวอร์ {
    ฟัง 8882 ssl;

    ที่ตั้ง / {
      auth_basic "จำกัดการเข้าถึง";
      auth_basic_user_file /etc/nginx/htpasswd.users;

      proxy_pass http://kibana;
      ปิด proxy_redirect;
      ปิด proxy_buffering;

      proxy_http_version 1.1;
      การเชื่อมต่อ proxy_set_header "Keep-Alive";
      proxy_set_header การเชื่อมต่อพร็อกซี "Keep-Alive";
    }
}

เนื่องจากฉันรู้สึกขี้เกียจ ไร้เดียงสา และขาดทักษะบางอย่าง ฉันคิดว่าฉันสามารถให้บริการเว็บด้วยบล็อคนี้:

    ต้นน้ำ thewebthing {
        เซิร์ฟเวอร์ 127.0.0.1:443;
        Keepalive 15;
      }


    เซิร์ฟเวอร์ {
    ฟัง 443 ssl;
    server_name thewebthing;
    large_client_header_buffers 4 16k;
    ที่ตั้ง / {
      error_log /var/log/nginx/thewebthing.log ข้อมูล;
      รูท /var/www/thewebthing/public;
      ดัชนี index.html index.htm index.php;
      proxy_pass http://thewebthing;
      ปิด proxy_redirect;
      ปิด proxy_buffering;
      proxy_http_version 1.1;
      การเชื่อมต่อ proxy_set_header "Keep-Alive";
      proxy_set_header การเชื่อมต่อพร็อกซี "Keep-Alive";
    }
  }

ฉันรู้ว่ามันไม่ง่ายอย่างนั้น ฉันพยายามแก้ไขปัญหาบันทึกการอ่านโดยให้:

==> /var/log/nginx/access.log <==
127.0.0.1 - - [25/มี.ค./2022:16:45:29 +0100] "GET /var/www/thewebthing/public/index.php HTTP/1.1" 400 271 "-" "curl/7.64.0"                                                                     
192.168.2.249 - - [25/มี.ค./2022:16:45:29 +0100] "GET /var/www/thewebthing/public/index.php HTTP/1.1" 400 271 "-" "curl/7.64.0"                                                                 

==> /var/log/nginx/thewebthing.log <==
2022/03/25 16:45:29 [ข้อมูล] 863#863: *4531 ไคลเอ็นต์ 192.168.2.249 ปิดการเชื่อมต่อ Keepalive

ขดให้ฉันนี้:

curl -k https://192.168.2.249/var/www/thewebthing/public/index.php

<html>
<head><title>400 คำขอ HTTP ธรรมดาถูกส่งไปยังพอร์ต HTTPS</title></head>
<ตัว bgcolor="สีขาว">
<center><h1>400 คำขอไม่ถูกต้อง</h1></center>
<center>คำขอ HTTP ธรรมดาถูกส่งไปยังพอร์ต HTTPS</center>
<hr><center>nginx/1.14.2</center>
</body>
</html>

ฉันเดาว่ามันเกี่ยวข้องกับ nginx เมื่อพิจารณาว่าฉันให้คำขอ http กับ https 443 ถูกเปิด แต่ไม่ใช่ 80 :

เอสเอส -lapunte | grep -E '443|80'


tcp ฟัง 0 128 0.0.0.0:443 0.0.0.0:* ino:66759 sk:1d <->  

ฉันไม่มีไฟร์วอลล์ ไม่มี apparmor หรือ Selinux สิทธิ์เป็น www-data ฉันพยายามเพิ่มการบันทึก

ดังที่คุณสังเกตเห็นว่าฉันไม่สบายใจกับสิ่งบนเว็บ นั่นเป็นเหตุผลที่ฉันกำลังมองหาคำแนะนำเบาะแสที่จะผลักดันฉันในเส้นทางที่ถูกต้อง

ขอบคุณคนแปลกหน้าใจดี

โพสต์คำตอบ

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