gpt4 book ai didi

node.js - Nginx + Node.js 配置

转载 作者:太空宇宙 更新时间:2023-11-03 22:17:24 25 4
gpt4 key购买 nike

我需要正确配置 nginx 来解决我的问题。

假设 nginx + nodejs 服务器程序运行在同一台 debian 机器上。为简单起见,我网站的域名仅为 webserver.com(并将 www.webserver.com 作为别名)

现在,当有人在互联网上浏览“webserver.com/”时,它应该将请求传递给nodejs应用程序,该应用程序应该在特定端口(例如3000)上运行。但是图像和 css 文件应该由 nginx 作为静态文件提供服务,并且文件结构应该类似于 webserver.com/images 或 webserver.com/css .. 图像 + css 应该像静态服务器一样由 nginx 提供服务

现在事情变得棘手了:但是,当有人在 webserver.com/staticsite001 或 webserver.com/staticsite002 上冲浪时,它应该仅由 nginx 服务器提供服务。那就不需要nodejs了。

对于nodejs服务器,我只是使用端口3000设置我的nodejs应用程序,例如接收来自webserver.com的nginx的旁路

用更容易理解的语言来说:当有人浏览 webserver.com/staticsite001 时,它不应该将其传递给 Node 应用程序。仅当其位于外部人员可以看到的第一个 webserver.com/目录内时,才应将其传递给 Node 应用程序。 webserver.com/staticsite001 应该仅由 nginx 提供服务。

怎么,我该怎么做? nginx 配置的 http 和服务器 block 应该是什么样子?

我熟悉nodejs。但我是 nginx 新手,也是反向代理新手。谢谢

debian 硬盘上的文件结构如下所示:

/home/wwwexample/staticsite001(对于 www.webserver.com/staticsite001/)仅由 nginx 处理/home/wwwexample/staticsite002(对于 www.webserver.com/staticiste002/)仅由 nginx 处理/home/wwwexample/images
/home/wwwexample/css

并且在/home/nodeapplication 是我的 Node js 应用程序

最佳答案

这个服务器 block 应该可以工作:

server {
listen 80;
server_name webserver.com www.webserver.com;

root /home/wwwexample;

location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
}

location /staticsite001 {
}

location /staticsite002 {
}

location /images {
}

location /css {
}
}

第一location使 nginx 变为 proxy一切都到localhost:3000。后面的空 location 指示 nginx 使用默认行为,即提供静态文件。

将此代码放入文件 /etc/nginx/sites-available/my-server 中,并在 /etc/nginx/sites-enabled 中创建指向它的符号链接(symbolic link)。有一个默认配置,您可以将其用作引用。

之后您可以使用命令 sudo/usr/sbin/nginx -t 来检查配置。如果一切正常,请使用 /etc/init.d/nginx reload 应用新配置。

关于node.js - Nginx + Node.js 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21923697/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com