node.js - 使 nginx 和 node.js 有一个共同的根文件夹

标签 node.js linux ubuntu nginx

我搭建了一个 Ubuntu 服务器(16.04),安装了 nodejs 和 nginx,并使它们一个一个地工作。 nodejs 在 3000 端口,nginx 在 80 端口。

我现在唯一的问题是 ftp。我想让 nodejs 的 js 文件驻留在 nginx www 文件夹的子文件夹中,反之亦然。所以我可以一次上传所有文件。

我试图在 nginx/var/www/html/my_web_project 中创建一个符号链接(symbolic link),指向 nodejs 中的一个文件夹,/home/admin/www/my_web_project。 ..但是我遇到了无休止的访问被拒绝的问题。

管理员主文件夹已加密,可能会导致问题?

无论如何,我不介意在某个地方有一个文件夹,nginx 和 nodejs 都希望在它们各自的子文件夹中找到它们的文件。

这是一个好方法吗?有人可以给我一些建议吗?

最佳答案

Linux 有一个陡峭的学习曲线,但它实际上是值得的,因为我终于得到了一个可行的解决方案。

从安装 nginx 开始。即使您打算在 nodejs 中进行大部分开发,您也需要一个可用的 Web 服务器,即 nginx。

我浏览了这些指南:

https://serverfault.com/questions/433265/how-do-i-change-the-nginx-user

https://nevyan.blogspot.se/2016/01/install-setup-nginx-php-mysql-and-ftp.html

指南归结为这些命令:

sudo apt-get install nginx
sudo nano /etc/nginx/nginx.conf    
sudo nano /etc/nginx/sites-available/default

编辑 nginx.conf,指示 nginx 以用户 'my_user' 运行:

user my_user;

修改默认配置,这里关键的一行:

root /home/my_user/ftp/files;

然后重启你的 nginx 服务器。

结果应该是什么?简单的;我可以通过 ftp 将文件上传到我的网络服务器。

  1. 我通过 ftp 或 sftp 连接到“my_user”,因为它是我的用户主文件夹,所以我可以覆盖这些文件。避免 linux 文件安全方面的大多数困难。 (我很难理解所有这些。)
  2. 由于 nginx 以用户“my_user”运行,它也可以访问/home/my_user/ftp/files 文件夹! (我差点疯了让这一步工作)
  3. nginx 的根文件夹设置为/home/my_user/ftp/files,因此当我将新版本的 index.html 上传到该文件夹​​时,nginx 会立即使用它。

有效。 :)

nodejs 很容易安装,它似乎“开箱即用”。我基本上遵循了这个指南:https://kyup.com/tutorials/install-run-node-js-application/

我也想要 websocket,这是最简单的部分:

sudo npm install websocket

希望它对某人有所帮助,我在做这项工作时很开心。 :)

关于node.js - 使 nginx 和 node.js 有一个共同的根文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46675376/

相关文章:

javascript - mongodb 日期 蒙古死牛肉

java - 从 asset 文件夹中执行 cp 命令 android

ubuntu - 如何使用 vnc 在 ubuntu 中运行 docker 镜像?

javascript - Sails.js,未生成应用程序文件

node.js - 如何在 YouTube API 中使用 ETag

linux - POSIX 串行端口上的 read() 可能很慢的原因是什么?

apache - 如何使用 ubuntu 20.04 在 apache2 上启用 http/2?

node.js - ubuntu ng 命令不起作用

node.js - 通过 nvm 安装 node.js v0.8.1 失败

linux - 是否在内核中使用像 sprintf 这样的用户空间函数?