我对node.js还是很陌生,对服务器没有太多的了解。
我制作了一个节点应用程序,并使用node server.js &
在我的服务器(该服务器在php中有一些其他网站,因此它需要使用apache)中启动了它。
它运行良好,一直运行到第二天,直到出现503错误。再次使用ssh进入我的服务器,发现它不起作用,因此我再次从运行nodemon server.js &
的nodemon开始。
同一件事,几个小时后,我再次遇到503错误。
我遵循的步骤:
1.在/ var / www /
中创建网站文件夹
2.在/ etc / apache2 / sites-available /中创建了网站配置(mysite.com.conf文件显示如下)
3.使用e2ensite
启用网站
5.运行cerbot以获得SLL证书
6.重新加载的Apache
7.使用nodemon server.js > log.out &
我创建了mysite.com.conf,如下所示:
<VirtualHost *:80>
ServerAdmin user@MAINDOMAIN.com
ServerName MYSITE.MAINDOMAIN.com
ServerAlias www.MYSITE.MAINDOMAIN.com
DocumentRoot /var/www/MYSITE.MAINDOMAIN.com/public
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory "/var/www/MYSITE.MAINDOMAIN.com/public">
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
ProxyPass / http://127.0.0.1:7000/
ProxyPassReverse / http://127.0.0.1:7000/
RewriteEngine on
RewriteCond %{SERVER_NAME} =MYSITE.MAINDOMAIN.COM [OR]
RewriteCond %{SERVER_NAME} =www.MYSITE.MAINDOMAIN.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI}
[END,NE,R=permanent]
</VirtualHost>
我的server.js文件如下:
const express = require('express')
const mysql = require('mysql')
const app = express()
//mysql database connection here
//some app.get() here to render pages
const server = app.listen(7000, () => {
console.log('Express running on port ${server.address().port}');
});
我登出的最后一条消息是app crashed - waiting for file changes before starting
。
如何保持运行?我做错什么了吗?