Proxyreverse ใน Apache2 ด้วย wordpress
ฉันได้ติดตั้งและกำหนดค่า 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 ที่ต้องเปลี่ยน?
คำตอบ
คุณมีทางเกิดขึ้นมากเกินไป
ProxyPass- หรือ - DocumentRootไม่ใช่ทั้งสองอย่าง
คุณสามารถให้บริการเพจจาก apache (โดยใช้DocumentRoot) หรือคุณสามารถให้บริการเพจจาก nodejs (โดยใช้ProxyPass)
ในที่สุดฉันก็แก้ไขสิ่งนี้ฉันสร้างใบรับรอง SSL สำหรับเว็บไซต์ของฉันโดยใช้การเข้ารหัส certbot สคริปต์นี้สร้างโฮสต์เสมือนใหม่ในไฟล์อื่นสำหรับคำขอ https (เรียกว่า /etc/apache2/sites-available/myDomain-le-ssl.conf) virtualhost นั้นกำลังแทนที่คำสั่ง proxypass ของฉันการแก้ไข virtualhost นี้ทำให้ทำงานได้ทั้งหมด