如何在本地主机中使用 nginx 运行 Express 服务器?

Ash*_*hik 2 javascript nginx node.js express nginx-reverse-proxy

我想在本地主机中使用 Nginx 运行 Express 服务器。是否可以?如果可能的话我怎样才能实现这一目标?

const express = require('express')
const app = express()
const port = 3000

app.get('/', (req, res) => res.send('Hello World!'))

app.listen(port, () => console.log(`Server listening at http://localhost:${port}`))
Run Code Online (Sandbox Code Playgroud)

Dan*_*vtz 7

如果你想使用 nginx 作为 Express 的反向代理,你可以按如下方式配置你的服务器:

server {
    listen 80 default_server;
    server_name _;

location / {
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_pass http://localhost:3000; #port where you are serving your express app.

  }
}
Run Code Online (Sandbox Code Playgroud)

您应该在中进行配置/etc/nginx/sites-available/default

更改配置文件后,检查脚本中是否有错误:

$sudo nginx -t
Run Code Online (Sandbox Code Playgroud)

预期结果应该是:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Run Code Online (Sandbox Code Playgroud)

配置成功后,您应该重新启动 nginx 实例,命令为:

$sudo nginx -s reload
Run Code Online (Sandbox Code Playgroud)

正确重新加载后,断言您的节点/express 服务器正在运行。现在,如果您访问,http://localhost您应该会看到正在收听的内容http://localhost:3000

Nginx 应该为您的实例提供服务,当您停止节点/express 时,您应该看到默认错误 502。

如有任何疑问,请查看本文档作为资源。