Proxyreverse trong Apache2 với wordpress

Oct 04 2020

Tôi đã cài đặt và định cấu hình Wordpress trên máy chủ của mình bằng cách sử dụng cả máy ảo apach2. Tôi đã tạo một máy chủ ảo với cấu hình này

<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>


Như bạn có thể thấy từ cấu hình, tôi đang cố gắng đặt chỉ thị ProxyPass để chuyển hướng các yêu cầu nhận được trên đường dẫn /node-yrl-bookđến một nodejsdịch vụ (được thực hiện bằng cách sử dụng expressjs) tại cổng 5000 nhưng điều này không hoạt động, thay vì nhận được chuyển hướng đến dịch vụ đó trang 404 không tìm thấy trang wordpress.

Nếu tôi thực hiện một yêu cầu tại my_ip/node-yrl-bookthay vào đó, nó hoạt động chính xác và tôi được chuyển hướng đến dịch vụ tại cổng: 5000

Tôi cho rằng tôi đang thiếu một cái gì đó trong cấu hình của tôi nhưng tôi không hiểu những gì .. Có thể là một cái gì đó trong wordpress phải được thay đổi?

Trả lời

jnovack Oct 04 2020 at 17:37

Bạn có quá nhiều thứ đang diễn ra.

ProxyPass-hoặc- DocumentRoot, không phải cả hai.

Bạn có thể cung cấp trang từ apache (bằng cách sử dụng DocumentRoot) hoặc bạn có thể phân phát trang từ nodejs (bằng cách sử dụng ProxyPass).

Mat.C Oct 04 2020 at 20:11

Cuối cùng, tôi đã giải quyết được vấn đề này, tôi đã tạo chứng chỉ SSL cho trang web của mình bằng cách sử dụng hãy mã hóa certbot, Tập lệnh này đã tạo một máy chủ ảo mới trong một tệp khác cho các yêu cầu https (được gọi là /etc/apache2/sites-available/myDomain-le-ssl.conf) Máy chủ ảo đó đã ghi đè chỉ thị proxypass của tôi, việc chỉnh sửa máy chủ ảo này cũng khiến tất cả hoạt động