如何设置我的 VPS Webmin/Virtualmin 服务器以在托管网站中显示来自 MongoDB 的数据?

Posted

技术标签:

【中文标题】如何设置我的 VPS Webmin/Virtualmin 服务器以在托管网站中显示来自 MongoDB 的数据?【英文标题】:How do I set my VPS Webmin/Virtualmin server to show data from MongoDB in the hosted website? 【发布时间】:2021-03-13 21:13:27 【问题描述】:

这是我的第一个问题,希望我做对了。所以:

我开发了一个 MERN 网站,在该网站上我与一个 MongoDB 数据库以及一个 Amazon S3 数据库有着完美的连接。

我目前正在尝试将它托管在带有 Virtualmin 和 Webmin 的 Hostinger VPS 上。由于 FTP 工作,数据在,所以网站设计显示但 mongoDB 数据丢失。

到目前为止:

DNS 设置正确, SSH 一切正常, mongo shell 通过控制台安装在服务器内部,我可以看到我的数据库和数据 使用 mongo 方法 db.createUser() 成功创建新用户,附加到我的数据库

所以我的问题是:通过服务器将数据传输到网站的以下步骤是什么?

我是新手,我已经到处搜索了好几天都没有成功,并且托管支持在这件事上丢失了......

谢谢!

【问题讨论】:

【参考方案1】:

如果它对我成功设置服务器的任何人有所帮助,那是相当多的工作。这是我的配置:

我设置 nginx 监听来自前端的 https 请求,并将它们发送到后端。配置文件名为“default”,位于文件夹 sites-available 中,内容如下:
server 
  listen  80;
  listen 443 ssl;

  root /the/frontend/root/folder;
  server_name _;
  
  ssl on;
  ssl_certificate /the/ssl/.crt/file;
  ssl_certificate_key /the/ssl/.key/file;

  # react app & front-end files
  location / 
    try_files $uri /index.html;
  

  # node api reverse proxy
  location /api/ 
    proxy_pass http://localhost:portlistenedbybackend/api/;
  

React 前端带有一个集成在构建中的 .env 文件。在其中,我将 url 设置为前端发送请求的位置(然后被 Nginx 捕获)。部署时请注意将此 url 设置为您网站的域,因此在我的情况下:https://example.com/api

生产流程管理器 pm2 对于始终保持后端活动很有用,因此我安装了它并将其用于 Node 后端。从控制台将后端主服务器文件(在我的情况下为 server.js)添加到 pm2 的命令:sudo pm2 start your/serverfile/address

这里有几个链接对了解如何配置服务器非常有用:

适用于亚马逊服务器,但也适用于这里:https://jasonwatmore.com/post/2019/11/18/react-nodejs-on-aws-how-to-deploy-a-mern-stack-app-to-amazon-ec2

在控制台中记录日志以进行调试的指南: https://www.thegeekdiary.com/beginners-guide-to-journalctl-how-to-use-journalctl-to-view-and-manipulate-systemd-logs/

用于设置 Webmin 服务器:https://www.serverpronto.com/kb/cpage.php?id=Webmin

起初我放弃了 Webmin 和 Virtualmin,因为我所能找到的(包括支持)都是通过控制台设置服务器的教程。所以我一点一点地设置它。然后,最后,我从支持人员那里得到了一个教程来从 Webmin 设置服务器。但直到今天,我还不能说这是否对结构产生了影响。但至少它是干净的。

最后但并非最不重要的一点是,我发现一些控制台命令非常有用:

systemctl status theserviceyouwanttosee

systemctl start theserviceyouwanttostart

systemctl stop theserviceyouwanttostop

systemctl restart theserviceyouwanttorestart

服务示例:nginx、mongod...

测试 Nginx 是否设置正确:sudo nginx -t

修改后重新加载 nginx 配置文件:sudo nginx -s reload

查看 nginx 记录的最后一个错误:sudo tail -f /var/log/nginx/error.log

保存当前的 pm2 设置:pm2 save

后端执行日志:sudo pm2 logs

确定仍在使用 mongo 运行的进程(如果 mongod 无法正常重启,则很有用):pgrep mongo

杀死 mongo 进程以重新开始:kill <process>

显示服务器使用的所有服务:sudo systemctl

查看所有正在执行的进程和 CPU 的统计信息:top

尽管我在这个主题上花了几个星期的时间,但我对这一切还是很陌生,所以这个描述很可能是可以改进的。不要犹豫,提出任何改进、错误或提出问题,我会尽力回答。

干杯!

【讨论】:

【参考方案2】:

默认情况下,Virtualmin 安装 LAMP/LEMP 堆栈。不支持 MERN/MEAN 或基于节点 js 的应用程序。您必须通过 ssh 通过终端手动配置服务器。

按照说明进行操作。

Apache NodeJS installation

不支持基于节点的应用程序的 GUI。但您可以通过 Virtualmin 和 Webmin 为您的应用管理其他服务,如邮件、DNS、防火墙和 SSL 等。

【讨论】:

以上是关于如何设置我的 VPS Webmin/Virtualmin 服务器以在托管网站中显示来自 MongoDB 的数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何设置我的 VPS Webmin/Virtualmin 服务器以在托管网站中显示来自 MongoDB 的数据?

我的vps是256的现在运行网站,打开页面的时候 mysql占用cpu 100% ,是否mysql太大了

为啥putty和Xshell5连接不上VPS。提示could not connect to 我的VPS IP (PORT:) Connection failed

如何在一个Ubuntu VPS上用PM2来设置一个Node.js生产环境

使用 Apache 的 VPS 上的多个域

拨号VPS如何搭建