Nextcloud ภายในและภายนอก OpenLiteSpeed: การตั้งค่าพร็อกซีย้อนกลับ

ฉันจะตั้งค่า OpenLiteSpeed ​​เพื่อย้อนกลับพร็อกซีไปยัง Nextcloud บนเครือข่ายภายในได้อย่างไร

น่าแปลกที่การค้นหา Habré สำหรับ OpenLiteSpeed ​​​​ไม่ได้ให้อะไรเลย! ฉันรีบแก้ไขความอยุติธรรมนี้ เนื่องจาก LSWS เป็นเว็บเซิร์ฟเวอร์ที่ดี ฉันชอบความเร็วและอินเทอร์เฟซการดูแลเว็บที่สวยงาม:

Nextcloud ภายในและภายนอก OpenLiteSpeed: การตั้งค่าพร็อกซีย้อนกลับ

แม้ว่า OpenLiteSpeed ​​​​จะมีชื่อเสียงมากที่สุดในฐานะ "ตัวเร่งความเร็ว" ของ WordPress แต่ในบทความของวันนี้ฉันจะแสดงการใช้งานที่ค่อนข้างเฉพาะเจาะจง กล่าวคือ การย้อนกลับพร็อกซีของคำขอ (พร็อกซีย้อนกลับ) คุณบอกว่าเป็นเรื่องปกติที่จะใช้ nginx สำหรับสิ่งนี้ใช่ไหม ฉันจะเห็นด้วย แต่มันเจ็บมากที่เราตกหลุมรัก LSWS!

การมอบฉันทะก็โอเค แต่ที่ไหนล่ะ? ในบริการที่ยอดเยี่ยมไม่น้อย - Nextcloud เราใช้ Nextcloud เพื่อสร้าง "คลาวด์แชร์ไฟล์" ส่วนตัว สำหรับไคลเอนต์แต่ละราย เราจัดสรร VM แยกต่างหากด้วย Nextcloud และเราไม่ต้องการเปิดเผยพวกเขา "ภายนอก" แต่เราขอพร็อกซีผ่านพร็อกซีย้อนกลับทั่วไปแทน โซลูชันนี้ช่วยให้:
1) ลบเซิร์ฟเวอร์ที่เก็บข้อมูลไคลเอนต์ออกจากอินเทอร์เน็ตและ
2) บันทึกที่อยู่ IP

แผนภาพมีลักษณะดังนี้:

Nextcloud ภายในและภายนอก OpenLiteSpeed: การตั้งค่าพร็อกซีย้อนกลับ

เป็นที่ชัดเจนว่าโครงร่างนั้นง่ายขึ้นเพราะ การจัดระเบียบโครงสร้างพื้นฐานของบริการเว็บไม่ใช่หัวข้อของบทความในวันนี้

นอกจากนี้ในบทความนี้ ผมจะละเว้นการติดตั้งและการกำหนดค่าพื้นฐานของ nextcloud โดยเฉพาะอย่างยิ่งเนื่องจากมีเนื้อหาในหัวข้อนี้เกี่ยวกับHabré แต่ฉันจะแสดงการตั้งค่าอย่างแน่นอน โดยที่ Nextcloud จะไม่ทำงานหลังพรอกซี

ได้รับ:
Nextcloud ได้รับการติดตั้งบนโฮสต์ 1 และกำหนดค่าให้ทำงานผ่าน http (ไม่มี SSL) มีเพียงอินเทอร์เฟซเครือข่ายท้องถิ่นและที่อยู่ IP "สีเทา" 172.16.22.110
มากำหนดค่า OpenLiteSpeed ​​​​บนโฮสต์ 2 กันเถอะ มันมีสองอินเทอร์เฟซภายนอก (ดูอินเทอร์เน็ต) และภายในด้วยที่อยู่ IP บนเครือข่าย 172.16.22.0/24
ที่อยู่ IP อินเทอร์เฟซภายนอกของโฮสต์ 2 คือชื่อ DNS cloud.connect.link

งาน:
รับจากอินเทอร์เน็ตผ่านลิงค์ 'https://cloud.connect.link' (SSL) ไปยัง Nextcloud บนเครือข่ายภายใน

  • การติดตั้ง OpenLiteSpeed ​​บน Ubuntu 18.04.2

มาเพิ่มที่เก็บ:

wget -O http://rpms.litespeedtech.com/debian/enable_lst_debain_repo.sh |sudo ทุบตี
sudo ปรับปรุง apt-get

ติดตั้ง, รัน:

sudo apt-get ติดตั้ง openlitespeed
sudo /usr/local/lsws/bin/lswsctrl เริ่มต้น

  • การตั้งค่าไฟร์วอลล์ขั้นต่ำ

    sudo ufw อนุญาตให้ ssh
    ค่าเริ่มต้น sudo ufw อนุญาตให้ส่งออก
    sudo ufw เริ่มต้นปฏิเสธการรับเข้า
    sudo ufw อนุญาต http
    sudo ufw อนุญาต https
    sudo ufw อนุญาตจาก โฮสต์การจัดการของคุณ ไปยังพอร์ต 7080 ใด ๆ
    sudo ufw enable

  • ตั้งค่า OpenLiteSpeed ​​เป็นพร็อกซีย้อนกลับ
    มาสร้างไดเร็กทอรีภายใต้ virtualhost กัน

    ซีดี /usr/local/lsws/
    sudo mkdirc cloud.connect.link
    ซีดี cloud.connect.link/
    sudo mkdir {conf, html, บันทึก}
    sudo chown lsadm:lsadm ./conf/

มากำหนดค่าโฮสต์เสมือนจากเว็บอินเตอร์เฟส LSWS
เปิดการจัดการ URL http://cloud.connect.link:7080
เข้าสู่ระบบ/รหัสผ่านเริ่มต้น: admin/123456

Nextcloud ภายในและภายนอก OpenLiteSpeed: การตั้งค่าพร็อกซีย้อนกลับ

เพิ่มโฮสต์เสมือน (โฮสต์เสมือน > เพิ่ม)
เมื่อทำการเพิ่ม ข้อความแสดงข้อผิดพลาดจะปรากฏขึ้น - ไฟล์การกำหนดค่าหายไป นี่เป็นเรื่องปกติ แก้ได้ด้วยการคลิก Click to create

Nextcloud ภายในและภายนอก OpenLiteSpeed: การตั้งค่าพร็อกซีย้อนกลับ

ในแท็บทั่วไป ให้ระบุรูทเอกสาร (แม้ว่าจะไม่จำเป็น แต่การกำหนดค่าจะไม่หายไปหากไม่มีรูท) ชื่อโดเมน หากไม่ได้ระบุ จะนำมาจากชื่อโฮสต์เสมือนซึ่งเราตั้งชื่อชื่อโดเมนของเรา

Nextcloud ภายในและภายนอก OpenLiteSpeed: การตั้งค่าพร็อกซีย้อนกลับ

ตอนนี้ถึงเวลาที่ต้องจำไว้ว่าเราไม่ได้มีเพียงเว็บเซิร์ฟเวอร์เท่านั้น แต่ยังมีพร็อกซีย้อนกลับอีกด้วย การตั้งค่าต่อไปนี้จะบอก LSWS ว่าพร็อกซีอะไรและที่ไหน ในการตั้งค่าโฮสต์เสมือน ให้เปิดแท็บแอปภายนอกและเพิ่มแอปพลิเคชันใหม่ของประเภทเว็บเซิร์ฟเวอร์:

Nextcloud ภายในและภายนอก OpenLiteSpeed: การตั้งค่าพร็อกซีย้อนกลับ

ระบุชื่อและที่อยู่ คุณสามารถระบุชื่อที่กำหนดเองได้ แต่คุณต้องจำชื่อไว้ซึ่งจะมีประโยชน์ในขั้นตอนถัดไป ที่อยู่คือที่ที่ Nextcloud อาศัยอยู่ในเครือข่ายภายใน:

Nextcloud ภายในและภายนอก OpenLiteSpeed: การตั้งค่าพร็อกซีย้อนกลับ

ในการตั้งค่าโฮสต์เสมือนเดียวกัน ให้เปิดแท็บบริบทและสร้างบริบทใหม่ของประเภทพร็อกซี:

Nextcloud ภายในและภายนอก OpenLiteSpeed: การตั้งค่าพร็อกซีย้อนกลับ

ระบุพารามิเตอร์: URI = /, เว็บเซิร์ฟเวอร์ = nextcloud_1 (ชื่อจากขั้นตอนก่อนหน้า)

Nextcloud ภายในและภายนอก OpenLiteSpeed: การตั้งค่าพร็อกซีย้อนกลับ

รีสตาร์ท LSWS สำเร็จได้ด้วยคลิกเดียวจากเว็บอินเตอร์เฟส ปาฏิหาริย์! (ผู้ให้บริการเมาส์ทางพันธุกรรมพูดในตัวฉัน)

Nextcloud ภายในและภายนอก OpenLiteSpeed: การตั้งค่าพร็อกซีย้อนกลับ
Nextcloud ภายในและภายนอก OpenLiteSpeed: การตั้งค่าพร็อกซีย้อนกลับ

  • เราใส่ใบรับรอง กำหนดค่า https
    ขั้นตอนการขอรับใบรับรอง เราจะละเว้น และยอมรับว่าเรามีมันแล้วและโกหกคีย์ในไดเร็กทอรี /etc/letsencrypt/live/cloud.connect.link

มาสร้าง "ผู้ฟัง" (ผู้ฟัง> เพิ่ม) เรียกมันว่า "https" ชี้ไปที่พอร์ต 443 และสังเกตว่าจะปลอดภัย:

Nextcloud ภายในและภายนอก OpenLiteSpeed: การตั้งค่าพร็อกซีย้อนกลับ

ในแท็บ SSL ระบุเส้นทางไปยังคีย์และใบรับรอง:

Nextcloud ภายในและภายนอก OpenLiteSpeed: การตั้งค่าพร็อกซีย้อนกลับ

“ผู้ฟัง” ถูกสร้างขึ้นแล้ว ตอนนี้ในส่วนการแมปโฮสต์เสมือนเราจะเพิ่มโฮสต์เสมือนของเราเข้าไป:

Nextcloud ภายในและภายนอก OpenLiteSpeed: การตั้งค่าพร็อกซีย้อนกลับ

หาก LSWS จะพร็อกซีไปยังบริการเดียวเท่านั้น การกำหนดค่าจะเสร็จสมบูรณ์ได้ แต่เราวางแผนที่จะใช้มันเพื่อส่งคำขอไปยัง "อินสแตนซ์" ที่แตกต่างกันขึ้นอยู่กับชื่อโดเมน และทุกโดเมนจะมีใบรับรองของตนเอง ดังนั้น คุณต้องไปที่การกำหนดค่า virtualhost และระบุคีย์และใบรับรองอีกครั้งในแท็บ SSL ในอนาคต ควรทำสิ่งนี้กับโฮสต์เสมือนใหม่แต่ละโฮสต์

Nextcloud ภายในและภายนอก OpenLiteSpeed: การตั้งค่าพร็อกซีย้อนกลับ

ยังคงต้องกำหนดค่าการเขียน URL ใหม่เพื่อให้คำขอ http ถูกส่งไปยัง https
(ยังไงก็ตาม เรื่องนี้จะสิ้นสุดเมื่อใด ถึงเวลาที่เบราว์เซอร์และซอฟต์แวร์อื่น ๆ จะต้องไปที่ https ตามค่าเริ่มต้น และส่งต่อไปยังแบบไม่มี SSL ด้วยตนเองหากจำเป็น)
เปิดเปิดใช้งานการเขียนซ้ำและเขียนกฎการเขียนซ้ำ:

เขียนใหม่ %{SERVER_PORT} 80
เขียนกฎใหม่ ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,ลิตร]

Nextcloud ภายในและภายนอก OpenLiteSpeed: การตั้งค่าพร็อกซีย้อนกลับ

เนื่องจากความเข้าใจผิดที่แปลกประหลาด จึงเป็นไปไม่ได้ที่จะใช้กฎการเขียนซ้ำกับการรีสตาร์ทอย่างสง่างามตามปกติ ดังนั้น เราจะรีสตาร์ท LSWS ที่ไม่สวยงาม แต่หยาบคายและมีประสิทธิภาพ:

sudo systemctl รีสตาร์ท lsws.service

เพื่อให้เซิร์ฟเวอร์ฟังพอร์ต 80 มาสร้าง Listener อื่นกัน เรียกมันว่า http ระบุพอร์ตที่ 80 และจะไม่ปลอดภัย:

Nextcloud ภายในและภายนอก OpenLiteSpeed: การตั้งค่าพร็อกซีย้อนกลับ

โดยการเปรียบเทียบกับการตั้งค่าผู้ฟัง https ให้แนบโฮสต์เสมือนของเราเข้าด้วยกัน

ตอนนี้ LSWS จะฟังพอร์ต 80 และส่งคำขอไปยัง 443 จากนั้นเขียน URL ใหม่
โดยสรุป ฉันแนะนำให้ลดระดับการบันทึก LSWS ซึ่งตั้งค่าเป็น Debug ตามค่าเริ่มต้น ในโหมดนี้ บันทึกจะทวีคูณอย่างรวดเร็ว! ในกรณีส่วนใหญ่ ระดับคำเตือนก็เพียงพอแล้ว ไปที่การกำหนดค่าเซิร์ฟเวอร์ > บันทึก:

Nextcloud ภายในและภายนอก OpenLiteSpeed: การตั้งค่าพร็อกซีย้อนกลับ

การกำหนดค่า OpenLiteSpeed ​​เป็นพร็อกซีย้อนกลับเสร็จสมบูรณ์ รีสตาร์ท LSWS อีกครั้ง ตามลิงค์ https://cloud.connect.link และดู:

Nextcloud ภายในและภายนอก OpenLiteSpeed: การตั้งค่าพร็อกซีย้อนกลับ

เพื่อให้ Nextcloud ให้เราเข้าไป เราต้องเพิ่มโดเมน cloud.connect.link ในรายการที่เชื่อถือได้ ไปแก้ไข config.php กัน ฉันติดตั้ง Nextcloud โดยอัตโนมัติเมื่อติดตั้ง Ubuntu และการกำหนดค่าอยู่ที่นี่: /var/snap/nextcloud/current/nextcloud/config
เพิ่มพารามิเตอร์ 'cloud.connect.link' ให้กับคีย์ trusted_domains:

'trusted_domains' =>
อาร์เรย์ (
0 => '172.16.22.110',
1 => 'cloud.connect.link',
),

Nextcloud ภายในและภายนอก OpenLiteSpeed: การตั้งค่าพร็อกซีย้อนกลับ

นอกจากนี้ ในการกำหนดค่าเดียวกัน คุณต้องระบุที่อยู่ IP ของพร็อกซีของเรา ฉันให้ความสนใจกับความจริงที่ว่าต้องระบุที่อยู่ซึ่งเซิร์ฟเวอร์ Nextcloud มองเห็นได้เช่น IP ของอินเทอร์เฟซ LSWS ภายในเครื่อง หากไม่มีขั้นตอนนี้ เว็บอินเตอร์เฟส Nextcloud จะทำงาน แต่แอปพลิเคชันไม่ได้รับอนุญาต

'trusted_proxys' =>
อาร์เรย์ (
0 => '172.16.22.100',
),

เยี่ยมมาก หลังจากนั้นเราสามารถเข้าสู่อินเทอร์เฟซการอนุญาตได้:

Nextcloud ภายในและภายนอก OpenLiteSpeed: การตั้งค่าพร็อกซีย้อนกลับ

แก้ไขปัญหา! ตอนนี้ไคลเอนต์แต่ละรายสามารถใช้ "file cloud" ได้อย่างปลอดภัยที่ url ส่วนตัวของเขาเอง เซิร์ฟเวอร์ที่มีไฟล์จะถูกแยกออกจากอินเทอร์เน็ต ไคลเอนต์ในอนาคตจะได้รับทุกอย่างเหมือนกันและไม่ได้รับผลกระทบใด ๆ ที่อยู่ IP เพิ่มเติม
นอกจากนี้ คุณสามารถใช้ Reverse Proxy เพื่อส่งเนื้อหาแบบคงที่ได้ แต่ในกรณีของ Nextcloud สิ่งนี้จะไม่ทำให้ความเร็วเพิ่มขึ้นอย่างเห็นได้ชัด ดังนั้นจึงเป็นทางเลือกและทางเลือก

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

ที่มา: will.com

เพิ่มความคิดเห็น