Proxyreverse ใน Apache2 ด้วย wordpress

Oct 04 2020

ฉันได้ติดตั้งและกำหนดค่า Wordpress บนเซิร์ฟเวอร์ของฉันโดยใช้ apach2 virtualhosts ด้วย ฉันสร้างโฮสต์เสมือนด้วยการกำหนดค่านี้

<VirtualHost *:80 *:443>

    ServerAdmin [email protected]
    ServerName yourluxuryroad.com
    ServerAlias www.yourluxuryroad.com
    DocumentRoot /var/www/yourluxuryroad
    ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined

    RewriteEngine on
    RewriteCond %{SERVER_NAME} =www.yourluxuryroad.com [OR]
    RewriteCond %{SERVER_NAME} =yourluxuryroad.com
    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

    ProxyPreserveHost On
    ProxyRequests Off
    ProxyPass /node-yrl-book http://localhost:5000
    ProxyPassReverse /node-yrl-book http://localhost:5000

</VirtualHost>

<Directory /var/www/yourluxuryroad/>
    AllowOverride All
</Directory>


ดังที่คุณเห็นจากการกำหนดค่าฉันพยายามตั้งค่าคำสั่ง ProxyPass สำหรับเปลี่ยนเส้นทางคำขอที่ได้รับบนเส้นทาง/node-yrl-bookไปยังnodejsบริการ (ทำโดยใช้expressjs) ที่พอร์ต 5000 แต่ไม่ทำงานแทนที่จะได้รับการเปลี่ยนเส้นทางไปยังบริการนั้นที่ฉันได้รับ หน้า 404 ไม่พบหน้า wordpress

หากฉันส่งคำขอmy_ip/node-yrl-bookแทนมันทำงานได้อย่างถูกต้องและฉันถูกเปลี่ยนเส้นทางไปยังบริการที่พอร์ต: 5000

ฉันคิดว่าฉันขาดอะไรบางอย่างในการกำหนดค่าของฉัน แต่ฉันไม่เข้าใจว่าอะไร .. อาจจะมีบางอย่างใน wordpress ที่ต้องเปลี่ยน?

คำตอบ

jnovack Oct 04 2020 at 17:37

คุณมีทางเกิดขึ้นมากเกินไป

ProxyPass- หรือ - DocumentRootไม่ใช่ทั้งสองอย่าง

คุณสามารถให้บริการเพจจาก apache (โดยใช้DocumentRoot) หรือคุณสามารถให้บริการเพจจาก nodejs (โดยใช้ProxyPass)

Mat.C Oct 04 2020 at 20:11

ในที่สุดฉันก็แก้ไขสิ่งนี้ฉันสร้างใบรับรอง SSL สำหรับเว็บไซต์ของฉันโดยใช้การเข้ารหัส certbot สคริปต์นี้สร้างโฮสต์เสมือนใหม่ในไฟล์อื่นสำหรับคำขอ https (เรียกว่า /etc/apache2/sites-available/myDomain-le-ssl.conf) virtualhost นั้นกำลังแทนที่คำสั่ง proxypass ของฉันการแก้ไข virtualhost นี้ทำให้ทำงานได้ทั้งหมด