Score:1

apache2.4 ย้อนกลับพร็อกซีไปยังเซิร์ฟเวอร์ nginx gitlab

ธง us

ขณะนี้ฉันใช้เซิร์ฟเวอร์ owncloud โดยใช้เว็บเซิร์ฟเวอร์ apache 2.4 บน raspberry pi 4 8GB ของฉัน (ทำงานกับ dietpi 7.3) ซึ่งใช้งานได้ดี ฉันมีการตั้งค่าโดเมนสาธารณะและใช้ letsencrypt เพื่อสร้างใบรับรอง ตอนนี้ฉันต้องการตั้งค่าเซิร์ฟเวอร์ gitlab บน pi นี้ด้วย เซิร์ฟเวอร์ gitlab ทำงานและเข้าถึงได้ภายในเครือข่ายท้องถิ่นของฉันผ่านที่อยู่ IP และพอร์ต (192.168.1.234:1234) ฉันได้ตั้งค่า ภายนอก_url ใน /etc/gitlab/gitlab.rb ถึง 127.0.0.1:1234 และวิ่ง gitlab-ctl กำหนดค่าใหม่.

ตอนนี้ฉันต้องการกำหนดค่า reverse proxy จากเซิร์ฟเวอร์ apache ให้ชี้ไปที่ gitlab NGINX (แก้ไขเพื่อความชัดเจน: reverse proxy ควรทำงานจากเซิร์ฟเวอร์ url (mydomain.com/gitlab ในกรณีของฉัน)) ดังนั้นฉันจึงเพิ่ม ไฟล์ gitlab.conf ถึง /etc/apache2/sites-available/ และเพิ่มสิ่งต่อไปนี้ในไฟล์:

<VirtualHost *:80>
        ServerName mydomain.com
        ProxyRequests off
        <Location /gitlab>
                ProxyPass http://localhost:1234
                ProxyPassReverse http://localhost:1234
        </Location>
</VirtualHost>

<VirtualHost *:443>
        ServerName mydomain.com

        # Certificate
        SSLEngine on
        SSLCertificateFile /etc/letsencrypt/live/mydomain.com/cert.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/mydomain.com/privkey.pem
        SSLCertificateChainFile /etc/letsencrypt/live/mydomain.com/fullchain.pem

        <Location /gitlab>
                ProxyPass  http://localhost:1234
                ProxyPassReverse http://localhost:1234
        </Location>
</VirtualHost>

ปัญหาคือมันใช้งานไม่ได้ .. การไปที่ mydomain.com/gitlab ทำให้ฉันเหลือ a 404 ไม่พบ

(แน่นอนว่าฉันมักจะรีสตาร์ท apache2 ด้วย systemctl รีสตาร์ท apache2 เมื่อฉันเปลี่ยนบางอย่างในการกำหนดค่าและฉันได้เพิ่มไซต์ไปยังเซิร์ฟเวอร์ apache ด้วย a2ensite gitlab.conf และฉันได้เปิดใช้งานโมดูลด้วย หนังสือมอบฉันทะ และ proxy_http กับ a2enmod)

นอกจากนี้ ตอนนี้ฉันมักจะประสบปัญหาอื่นๆ อีกมาก เช่น ไม่แสดง URL ที่ถูกต้องใน gitlab และอื่นๆ แต่ฉันมีแนวคิดทั่วไปเกี่ยวกับวิธีแก้ไขปัญหาเหล่านั้นและต้องการแก้ไขปัญหานี้ก่อนและเริ่มดำเนินการแก้ไขเมื่อฉันพบ พวกเขา.

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

/กัปตันแจ็ค

digijay avatar
mx flag
ฉันเกรงว่าคำถามนี้อยู่นอกหัวข้อสำหรับข้อผิดพลาดของเซิร์ฟเวอร์ (คำถามเกี่ยวกับข้อผิดพลาดของเซิร์ฟเวอร์ต้องเกี่ยวกับการจัดการระบบเทคโนโลยีสารสนเทศ *ในสภาพแวดล้อมทางธุรกิจ*) แต่ยังไงก็ตาม: คุณมี `127.0.0.1 localhost` ใน `/etc/hosts` หรือไม่ และพอร์ต 1234 ใน `netstat -tulpen`?
CaptainJack42 avatar
us flag
ฟอรั่มใดจะมีสิทธิ์โพสต์คำถามดังกล่าวมากกว่า? เสียใจด้วย แต่ ณ จุดนี้ มีฟอรัมย่อยจำนวนมากเกินไปที่จะคอยติดตามว่าอะไรที่เหมาะกับฉัน ^^ อย่างไรก็ตาม ใช่ 127.0.0.1 localhost อยู่ใน etc/hosts และพอร์ตก็เปิดและทำงานอยู่เช่นกัน
digijay avatar
mx flag
ฉันคิดว่าคำถามของคุณถูกถามมาอย่างดี ไม่มีใครบ่นและคุณได้รับคำตอบ - โปรดอยู่กับเรา :-) +1
ezra-s avatar
ru flag
ProxyPass มีพารามิเตอร์สำหรับระบุพาธอยู่แล้ว การระบุภายใน Location อาจสร้างปัญหาให้คุณ เนื่องจาก proxypass และ location ถูกตีความในลำดับที่ตรงกันข้าม คำนึงถึงสิ่งนี้สำหรับการกำหนดค่าในอนาคต
Score:1
ธง za

เนื่องจากคุณกำลังมอบฉันทะให้ โลคัลโฮสต์, nginx ไม่พบไฟล์ เจ้าภาพ ส่วนหัวได้ทุกที่ และดูเหมือนว่าการติดตั้ง gitlab ของคุณจะเป็น virtualhost ที่ไม่ใช่ค่าเริ่มต้น ลองเพิ่ม

ProxyPreserveHost เปิด

ลงในการกำหนดค่า apache ของคุณ ไปยังส่วน vhost ทั้งสอง

CaptainJack42 avatar
us flag
มันได้ผล ขอบคุณ!

โพสต์คำตอบ

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