Ubuntu 18.04 Apache Обратный прокси с SSL для узла - PullRequest
0 голосов
/ 14 апреля 2020

У меня есть приложение реагировать с маршрутизацией и обслуживается на apache сервере. Бэкэнд приложения - nodejs. Они оба размещены по одной капле в DigitalOcean.

Когда я заходил на мой сайт, например, https://example.com, он отображал приложение, но не может получить API в nodejs бэкэнде, потому что его нет https (http://server_ip: 8080 ). При поиске по net я нашел обратный прокси Apache. Вот мой файл виртуального хоста:

<VirtualHost *:80>
    <Directory /var/www/example.com>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Require all granted
    </Directory>

    SSLEngine On
    SSLProxyEngine On
    SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem

    ProxyPreserveHost On

    ProxyPass / http://127.0.0.1:8080/
    ProxyPassReverse / http://127.0.0.1:8080/

    ServerAdmin webmaster@localhost
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =www.example.com [OR]
RewriteCond %{SERVER_NAME} =example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

, и когда я проверяю https://example.com/api/user/all/, он возвращает:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html>

<head>
    <title>404 Not Found</title>
</head>

<body>
    <h1>Not Found</h1>
    <p>The requested URL was not found on this server.</p>
    <hr>
    <address>Apache/2.4.29 (Ubuntu) Server at example.com Port 443</address>
</body>

</html>

Спасибо!

...