NodeJS 部署的配置 .htaccess 文件

问题描述 投票:0回答:1

我想在远程

NodeJS
服务器上部署我的
Apache
应用程序,但我不知道需要什么
.htaccess
配置才能让我的代码在服务器上工作,我已经尝试过这个,但它不起作用,因为服务器给出了
500 Internal server error
:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f    
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?(.*)$ https://www.johnny.group:8000/$1 [P]

index.js

import express from "express";
import cors from "cors";
const app = express();
app.use(cors());
const port = process.env.PORT || 8000;

app.use(express.json());

app.get("/", (req, res) => {
  try{
  res.send("Hello World!");
  }
  catch(err){
  res.send(err.message);
  }
});

app.listen(port, () => {
   console.log(`Server is running on port ${port}`);
});


node.js apache .htaccess
1个回答
0
投票

注意那些可能导致错误的情况:

  1. 您需要 mod_proxy 和 mod_proxy_http 来代理请求。您可以通过在服务器上运行以下命令来启用这些模块

    sudo a2enmod proxy
    sudo a2enmod proxy_http
    sudo a2enmod rewrite
    sudo systemctl restart apache2

  1. .htaccess 文件旨在重写对在不同端口上运行的 Node.js 服务器的请求。以下是如何配置它的演示:

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ http://localhost:8000/$1 [P,L]

  1. 确保 mod_proxy 配置正确
  2. 确保您的 Apache 服务器可以访问运行 Node.js 应用程序的 localhost:8000。
  3. 更改 .htaccess 或任何 Apache 配置文件后,不要忘记重新启动 Apache 以应用更改。
© www.soinside.com 2019 - 2024. All rights reserved.