如何设置我的 VPS Webmin/Virtualmin 服务器以在托管网站中显示来自 MongoDB 的数据?
How do I set my VPS Webmin/Virtualmin server to show data from MongoDB in the hosted website?
这是我的第一个问题,希望我做对了。所以:
我开发了一个 MERN 网站,在该网站上我与 MongoDB 数据库以及 Amazon S3 完美连接。
我目前正在尝试使用 Virtualmin 和 Webmin 在 Hostinger VPS 上托管它。由于 FTP 的工作,数据已经存在,因此网站设计显示但缺少 mongoDB 数据。
到目前为止:
- DNS 设置正确,
- SSH 一切正常,
- mongo shell 通过控制台安装在服务器内部,我可以看到我的数据库和数据
- 使用 mongo 方法 db.createUser() 成功创建新用户,附加到我的数据库
所以我的问题是:通过服务器将数据传送到网站的以下步骤是什么?
我是新手,我到处搜索了好几天都没有成功,并且在这件事上失去了托管支持...
谢谢!
默认情况下,Virtualmin 安装 LAMP/LEMP 堆栈。不支持 MERN/MEAN 或基于节点 js 的应用程序。您必须通过终端通过 ssh 手动配置您的服务器。
按照说明操作。
基于节点的应用程序不支持 GUI。但您可以通过 Virtualmin 和 Webmin 为您的应用程序管理其他服务,如邮件、DNS、防火墙和 SSL 等。
万一它能帮助我成功设置服务器的任何人,这需要做很多工作。这是我的配置:
- 我设置了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
尽管我在这个主题上花了几周时间,但我对所有这些仍然是新手,所以这个描述很可能是可以改进的。不要犹豫提出任何改进建议、错误或提出问题,我会尽力回答。
干杯!
这是我的第一个问题,希望我做对了。所以:
我开发了一个 MERN 网站,在该网站上我与 MongoDB 数据库以及 Amazon S3 完美连接。
我目前正在尝试使用 Virtualmin 和 Webmin 在 Hostinger VPS 上托管它。由于 FTP 的工作,数据已经存在,因此网站设计显示但缺少 mongoDB 数据。
到目前为止:
- DNS 设置正确,
- SSH 一切正常,
- mongo shell 通过控制台安装在服务器内部,我可以看到我的数据库和数据
- 使用 mongo 方法 db.createUser() 成功创建新用户,附加到我的数据库
所以我的问题是:通过服务器将数据传送到网站的以下步骤是什么?
我是新手,我到处搜索了好几天都没有成功,并且在这件事上失去了托管支持...
谢谢!
默认情况下,Virtualmin 安装 LAMP/LEMP 堆栈。不支持 MERN/MEAN 或基于节点 js 的应用程序。您必须通过终端通过 ssh 手动配置您的服务器。
按照说明操作。
基于节点的应用程序不支持 GUI。但您可以通过 Virtualmin 和 Webmin 为您的应用程序管理其他服务,如邮件、DNS、防火墙和 SSL 等。
万一它能帮助我成功设置服务器的任何人,这需要做很多工作。这是我的配置:
- 我设置了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
尽管我在这个主题上花了几周时间,但我对所有这些仍然是新手,所以这个描述很可能是可以改进的。不要犹豫提出任何改进建议、错误或提出问题,我会尽力回答。
干杯!