Score:-1

Nginx ทำงานร่วมกับที่อยู่ IP แต่ไม่ใช่ชื่อเซิร์ฟเวอร์

ธง ca

ฉันให้ Nginx ทำงานเป็น reverse proxy ต่อหน้า Apache Guacamole ทุกอย่างทำงานได้ดีเมื่อเข้าถึงผ่านที่อยู่ IP ด้วย XX.XX.XX.XX:8443 อย่างไรก็ตาม ฉันไม่สามารถเข้าถึงผ่าน server_name ด้วย "www.trainingserver1.com:8443" นี่คือไฟล์ mysite. template:

เซิร์ฟเวอร์ {
    ฟัง 80 default_server;
    ชื่อเซิร์ฟเวอร์ _;
    ส่งคืน 444 "ไม่มีเซิร์ฟเวอร์ที่กำหนดค่าสำหรับโฮสต์ที่ร้องขอในขณะนี้" ;
}

เซิร์ฟเวอร์ {
    ฟัง 443 ssl;
    server_name *.trainingserver1.com;

    ssl_certificate /etc/nginx/ssl/self.cert;
    ssl_certificate_key /etc/nginx/ssl/self-ssl.key;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    เปิด ssl_prefer_server_ciphers;
    ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
    ssl_ecdh_curve secp384r1;
    ssl_session_cache ที่ใช้ร่วมกัน: SSL:10m;
    ปิด ssl_session_tickets;
    ปิด ssl_stapling;
    ปิด ssl_stapling_verify;
# ตัวแก้ไข 8.8.8.8 8.8.4.4 ถูกต้อง = 300s;
# Solver_timeout 5 วินาที;

    #charset koi8-r;
    #access_log /var/log/nginx/host.access.log หลัก;

    ที่ตั้ง / {
    proxy_pass http://guacamole:8080;
    ปิด proxy_buffering;
    proxy_http_version 1.1;
    proxy_set_header X-ส่งต่อ-สำหรับ $proxy_add_x_forwarded_for;
    proxy_set_header อัพเกรด $http_upgrade;
    การเชื่อมต่อ proxy_set_header $http_connection;
    proxy_cookie_path /guacamole/ /;
    access_log off;
    # อนุญาตการอัปโหลดขนาดใหญ่ (ค่าเริ่มต้น=1m)
    # 4096m = 4GByte
    client_max_body_size 4096m;
    }

    #error_page 404 /404.html;

    # เปลี่ยนเส้นทางหน้าข้อผิดพลาดของเซิร์ฟเวอร์ไปยังหน้าสแตติก /50x.html
    #
    error_page 500 502 503 504 /50x.html;
    ตำแหน่ง = /50x.html {
        รูท /usr/share/nginx/html;
    }
}

นี่คือไฟล์ nginx.conf:

ผู้ใช้ nginx;
ผู้ปฏิบัติงาน_กระบวนการ 1;

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;
}

และสุดท้ายนี่คือ docker-compose.yml ที่เริ่มต้นทุกอย่าง:

รุ่น: '3'

เครือข่าย:
  เครือข่าย Guac:
    คนขับ: สะพาน

บริการ:
  กวากาโมเล่:
    ภาพ: oznu/guacamole
    container_name: กัวคาโมเล่
    ปริมาณ:
      - postgres:/config
    รีสตาร์ท: เสมอ
    เครือข่าย:
      เครือข่าย Guac:
    เปิดเผย:
      - 8080
    รีสตาร์ท: เสมอ

  จิงซ์:
   รีสตาร์ท: เสมอ
   ภาพ: nginx
   ปริมาณ:
   - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
   - ./nginx/mysite.template:/etc/nginx/conf.d/mysite.template
   - ./nginx/ssl:/etc/nginx/ssl
   พอร์ต:
   - 8443:443
   ##   สิ่งแวดล้อม:
   ## - NGINX_HOST=nginx
   ## - NGINX_PORT=443
   ลิงค์:
   - กวากาโมเล่
   เครือข่าย:
     เครือข่าย Guac:
   # ติดตั้ง opensl สร้างใบรับรองที่ลงนามเองและเรียกใช้ nginx
   คำสั่ง: /bin/bash -c "apt-get -y update && apt-get -y install openssl && openssl req -nodes -newkey rsa:2048 -new -x509 -keyout /etc/nginx/ssl/self-ssl. คีย์ออก /etc/nginx/ssl/self.cert -subj ' /C=DE/ST=BY/L=Hintertupfing/O=Dorfwirt/OU=Theke/CN=www.createyourown.domain/emailAddress=docker@createyourown .domain' && cp -f -s /etc/nginx/conf.d/mysite.template /etc/nginx/conf.d/default.conf && nginx -g 'daemon off;'"

ปริมาณ:
  โพสต์เกรส:
    คนขับ: ท้องถิ่น

แก้ไข:

ทุกอย่างในการกำหนดค่า Nginx นั้นใช้ได้ นี่เป็นปัญหาระเบียน DNS ทั่วไป เมื่อบันทึก DNS ได้รับการแก้ไขแล้ว เซิร์ฟเวอร์ Nginx จะสามารถเข้าถึงได้ที่ www.trainingserver1.com:8443.

Michael Hampton avatar
cz flag
คุณโพสต์การกำหนดค่าทั้งหมดของคุณ แต่คุณลืมบอกเราว่าปัญหาที่คุณมีคืออะไร ให้รายละเอียดเฉพาะรวมถึงรายการบันทึก
djdomi avatar
za flag
ฉันคิดว่าคุณกำลังประสบปัญหาเช่น `server_name *.trainingserver1.com;' แต่ไม่ใช่ `server_name *.trainingserver1.com trainingsserver1.com;' ซึ่งจะให้คุณใช้โดเมนเองแทนโดเมนย่อยของโดเมนเท่านั้น และยังเตือน คุณต้องการใช้ reverseproxy สำหรับ 8443...
Jeremy Beale avatar
ca flag
@djdomi ดูเหมือนว่าจะเป็นปัญหาเดียวกันในทั้งสองกรณี ฉันลองทั้งสองวิธีแล้ว แต่ก็ยังสามารถเข้าถึงเซิร์ฟเวอร์ได้ด้วยที่อยู่ IP เช่น XX.XX.XX.XX:8443 แต่ไม่ใช่ด้วยชื่อ "www.trainingserver1.com:8443"
Jeremy Beale avatar
ca flag
@MichaelHampton คุณสามารถสร้างปัญหาซ้ำกับไฟล์เหล่านี้ได้หรือไม่? ทั้ง 3 รายการจะอยู่ในไดเร็กทอรีเดียวกัน จากนั้นรัน `docker-compose up -d` เพื่อเริ่ม nginx + guacamole สุดท้ายพยายามเข้าถึงเซิร์ฟเวอร์ด้วยที่อยู่ IP หรือ server_name นั่นคือสิ่งที่ฉันพบปัญหา
in flag
ข้อความแสดงข้อผิดพลาดจริงที่คุณได้รับคืออะไร การจำแนกชื่อของคุณใช้งานได้หรือไม่
djdomi avatar
za flag
@JeremyBeale NGINX จะรู้ได้อย่างไร เมื่อคุณไม่ตั้งค่า reverse-proxy สำหรับกรณีนี้ และยิ่งไปกว่านั้น หากต้องการใช้ *.trainingserver1.com จะต้องตั้งค่า DNS เป็นสัญลักษณ์แทน หรือ www.trainingserver1.com จะต้องตั้งค่าเป็นรายการ DNS ที่ถูกต้อง - เนื่องจากคุณไม่บอกชื่อโดเมนที่แท้จริง จึงไม่ง่ายที่จะช่วยคุณ - เรากำลังทำงานที่นี่ใน [X-And-Y-Problem](https://faq-database.de/doku.php?id=th: ปัญหา x และ y)
Jeremy Beale avatar
ca flag
@GeraldSchneider ข้อความจริงจากเว็บเบราว์เซอร์คือ DNS_PROBE_FINISHED_NXDOMAIN
in flag
คุณจึงไม่มีระเบียน DNS สำหรับ IP นั้น สร้างหนึ่ง
Jeremy Beale avatar
ca flag
@GeraldSchneider ขอบคุณ! มันใช้งานได้แล้ว
Score:2
ธง in

ข้อความแสดงข้อผิดพลาด DNS_PROBE_FINISHED_NXDOMAIN แสดงว่าไม่สามารถแก้ไข URL ที่คุณพยายามเข้าถึงได้

คุณต้องสร้างระเบียน DNS สำหรับ URL นั้น

โพสต์คำตอบ

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