如何设置我的 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