Score:1

เปลี่ยนเส้นทางโดเมนที่ปลอดภัยไปยังอีกโดเมนหนึ่งผ่าน CNAME และ Nginx Docker Container

ธง jp

อัปเดต: ฉันได้เพิ่มความพยายามครั้งที่ 2 ที่ด้านล่างของโพสต์นี้ มัน "ใช้งานได้" แต่ฉันต้องการให้ความคิดดั้งเดิมของฉันทำงาน

ฉันพยายามเปลี่ยนเส้นทางคำขอ https สำหรับโดเมนหนึ่งไปยังอีกโดเมนหนึ่งผ่านเซิร์ฟเวอร์เปลี่ยนเส้นทาง

ฉันจะใช้ https://website.com, https://website2.com, และ https://myredirectserver.com ตัวอย่าง.

ฉันมีใบรับรอง SSL ที่ซื้อสำหรับ เว็บไซต์.คอมและ DNS เป็น CNAMED ที่ www ถึง myredirectserver.com. นอกจากนี้ยังมีใบรับรอง SSL สำหรับ mywebsite2.comและขณะนี้อยู่บนเซิร์ฟเวอร์ ทั้งหมดเป็นโดเมนแบบสแตนด์อโลน

myredirectserver.com มี Traffic Management A Records สองรายการ (ความพร้อมใช้งานสูง) ที่ชี้ไปยังที่อยู่ IP สองแห่ง

ที่อยู่ IP ทั้งสองนั้นเป็น NAT ในไฟร์วอลล์ไปยังพร็อกซีเซิร์ฟเวอร์

บนพร็อกซีเซิร์ฟเวอร์นั้นมี Docker Container ซึ่งรัน Alpine/Nginx

Dockerfile สำหรับคอนเทนเนอร์:

จาก nginx:1.17.7-อัลไพน์    
RUN apk เพิ่ม --no-cache tzdata    
ENV TZ อเมริกา/ชิคาโก    
RUN rm /etc/nginx/conf.d/default.conf    
คัดลอก myredirectserver.com.conf /etc/nginx/conf.d/myredirectserver.com.conf
เรียกใช้ rm /etc/nginx/nginx.conf    
คัดลอก nginx.conf /etc/nginx/nginx.conf    
คัดลอก myredirectserver.com.crt /etc/nginx/ssl/myredirectserver.com.crt    
คัดลอก myredirectserver.com.key /etc/nginx/ssl/myredirectserver.com.key    
คัดลอก proxy_params /etc/nginx/proxy_params

เดอะ เรียกใช้นักเทียบท่า ส่วนที่จะเริ่มต้น (มีไดรฟ์ข้อมูลเมาต์สำหรับการสร้างไฟล์การกำหนดค่าแบบไดนามิกผ่านโค้ดส่วนหลัง):

นักเทียบท่าเรียกใช้ --name=myredirectserver --restart always --log-opt max-size=50m --log-opt max-file=5 -d -v /etc/nginx/myredirectserverBuild:/etc/nginx/myredirectserverBuild -v /etc/nginx/myredirectserverSSL:/etc/nginx/myredirectserverSSL -p 8224:443 -p 8223:80 myredirectserver

ใน Docker Container นั้น ไฟล์กำหนดค่า Nginx จะอยู่ใน /etc/nginx/conf.d/myredirectserver.com.conf:

 #ฉันไม่รู้ว่าสิ่งนี้ถูกต้องสำหรับสิ่งที่ฉันต้องการหรือไม่
    เซิร์ฟเวอร์ {
                ฟัง 443 ssl;
    
                server_name myredirectserver.com www.myredirectserver.com;
                ssl_certificate /etc/nginx/ssl/myredirectserver.com.crt;
                ssl_certificate_key /etc/nginx/ssl/myredirectserver.com.key;
            }
            เซิร์ฟเวอร์ {
                ฟัง 80;
                server_name myredirectserver.com www.myredirectserver.com;
                ส่งคืน 301 https://www.myredirectserver.com$request_uri;
            }
    
    รวม /etc/nginx/myredirectserverBuild/*.conf;

ไฟล์รวมที่ส่วนท้ายมีไฟล์ ต้นฉบับ โดเมนที่ขอ, mywebsite.com.conf:

 ## www.mywebsite.com โฮสต์เสมือน
        เซิร์ฟเวอร์ {
            ฟัง 443 ssl;

            ชื่อเซิร์ฟเวอร์ mywebsite.com www.mywebsite.com;
            ssl_certificate /etc/nginx/myredirectwebsiteSSL/mywebsite.com.crt;
            ssl_certificate_key /etc/nginx/myredirectwebsiteSSL/mywebsite.com.key;               
        }
        เซิร์ฟเวอร์ {
            ฟัง 80;
            ชื่อเซิร์ฟเวอร์ mywebsite.com www.mywebsite.com;
            กลับ 301 https://www.mywebsite2.com$request_uri; <--- การเปลี่ยนเส้นทาง
        }
        

เดอะ เว็บไซต์2.com โดเมนอยู่บนเซิร์ฟเวอร์โฮสต์ และฉันสามารถขอโดเมนนั้นได้ตามปกติ ฉันไม่สามารถเข้าใจได้ว่าฉันทำอะไรผิดไป ฉันรู้สึกเหมือนอยู่ในการกำหนดค่า Nginx ของฉัน แต่ไวยากรณ์ Nginx ของฉันไม่ได้ดีที่สุด ของฉันทำไม กลับ 301 ไม่ทำงานและเปลี่ยนเส้นทางฉันไปยังโดเมน?

หมายเหตุสองสามข้อระหว่างการแก้ไขปัญหา:

wget 0.0.0.0:8223 ผลตอบแทน:

  --2021-07-26 23:44:19-- http://0.0.0.0:8223/
กำลังเชื่อมต่อกับ 0.0.0.0:8223... เชื่อมต่อแล้ว
ส่งคำขอ HTTP แล้ว กำลังรอการตอบกลับ... 301 ย้ายอย่างถาวร
ที่ตั้ง: https://www.mywebsite2.com/ [กำลังติดตาม]
--2021-07-25 23:44:19-- https://www.mywebsite2.com/
กำลังแก้ไข www.mywebsite2.com (www.mywebsite2.com)... XX.XXX.XXX.XXX
กำลังเชื่อมต่อกับ www.mywebsite2.com (www.mywebsite2.com)|XX.XXX.XXX.XXX|:443... เชื่อมต่อแล้ว
ส่งคำขอ HTTP แล้ว กำลังรอการตอบกลับ... 200 ตกลง
ความยาว: ไม่ระบุ [ข้อความ/html]
กำลังบันทึกไปที่: âindex.htmlâ

index.html [ <=> ] 37.56K 231KB/s ใน 0.2 วินาที    

2021-07-25 23:44:20 (231 KB/s) - บันทึก âindex.htmlâ [38461]

curl -- แก้ไข www.myredirectserver.com:8223:0.0.0.0 http://www.myredirectserver.com/ ส่งคืนการหมดเวลาเช่นเดียวกับเบราว์เซอร์

ขณะอยู่บนเครือข่ายท้องถิ่น ให้ป้อน IP ของคอนเทนเนอร์ Docker ในแถบที่อยู่ (192.168.69.140:8223) พาฉันไปที่ https://www.website2.com.

กำลังเข้า https://192.168.69.140:8224 นำฉันไปที่หน้าคำเตือนความปลอดภัย คลิก ดำเนินดำเนินการต่อและมันทำให้ฉัน 404.

ฉันรู้สึกสับสนเพราะไม่รู้วิธีจัดการกับคำขอเมื่อคำขอมาถึง IP ของ CNAME myredirectserver.com. ฉันจะบอก Nginx ให้ดูโดเมนที่ร้องขอดั้งเดิมได้อย่างไร เว็บไซต์.คอม?

อัปเดต (พยายามครั้งที่ 2):

ฉันหยุดคอนเทนเนอร์ Docker และเปลี่ยนไฟล์ CNAME ที่ www ระดับใน DNS เพื่อชี้ไปที่ Highly Available IP ที่มีอยู่แล้ว ฉันจะโทรหามัน เซิฟเวอร์ปลายทาง.net. โดยพื้นฐานแล้ว:

`mywebsite.com`
|
|---> CNAME 'destinationsserver.net'

`destinationserver.net`
|
|----> A XX.XXX.XXX.XXX --> ไฟร์วอลล์ --> พร็อกซี

|----> A XX.XXX.XXX.XXX --> ไฟร์วอลล์ --> พร็อกซี

บน เซิฟเวอร์ปลายทาง.net เซิร์ฟเวอร์ ฉันมีสิ่งต่อไปนี้ในการกำหนดค่า Nginx สำหรับ เว็บไซต์.คอม:

# ## www.mywebsite.com โฮสต์เสมือน
        เซิร์ฟเวอร์ {
            ฟัง 8222 ssl;

            ชื่อเซิร์ฟเวอร์ mywebsite.com www.mywebsite.com;
            ssl_certificate /etc/nginx/ssl/mywebsite.com.crt;
            ssl_certificate_key /etc/nginx/ssl/mywebsite.com.key;
            ส่งคืน 301 http://www.mywebsite2.com$request_uri;
        }
        เซิร์ฟเวอร์ {
            ฟัง 8221;
            ชื่อเซิร์ฟเวอร์ mywebsite.com www.mywebsite.com;
            ส่งคืน 301 https://www.mywebsite2$request_uri;
        } 

ดังที่ฉันได้ระบุไว้ใน 'อัปเดต' ในบรรทัดแรกของคำถาม นี่คือ "การทำงาน" แต่จะเป็นการดีหากจัดการการเปลี่ยนเส้นทางเหล่านี้ในพื้นที่แยกต่างหาก ดังนั้นแนวคิดของคอนเทนเนอร์ Docker

Score:0
ธง jp

ฉันได้ละทิ้งแนวคิดการเปลี่ยนเส้นทางเซิร์ฟเวอร์ และหันไปใช้สองสิ่งแทน:

ฉันได้เพิ่ม ANAME (นามแฝง) ลงในโดเมนรูทแล้ว www คำขอจะไปที่ตำแหน่งผู้จัดการทราฟฟิกที่พร้อมใช้งานสูงเช่นเดียวกับที่ไม่ใช่www คำขอ จากนั้นใน งินซ์ config ฉันเพิ่มสิ่งต่อไปนี้เพื่อเปลี่ยนเส้นทางคำขอ:

# ## www.mywebsite.com โฮสต์เสมือน
        เซิร์ฟเวอร์ {
            ฟัง 8222 ssl;

            ชื่อเซิร์ฟเวอร์ mywebsite.com www.mywebsite.com;
            ssl_certificate /etc/nginx/ssl/mywebsite.com.crt;
            ssl_certificate_key /etc/nginx/ssl/mywebsite.com.key;
            กลับ 301 https://www.mywebsite2.com$request_uri;
        }
        เซิร์ฟเวอร์ {
            ฟัง 8221;
            ชื่อเซิร์ฟเวอร์ mywebsite.com www.mywebsite.com;
            ส่งคืน 301 https://www.mywebsite2$request_uri;
        } 

สิ่งนี้ใช้ได้กับสิ่งที่ฉันต้องการ ดังนั้นหากไม่มีใครเสนอวิธีการที่ดีกว่า ฉันจะปล่อยไว้ตามที่เป็นอยู่

โพสต์คำตอบ

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