我有一个应用程序,它是在 NodeJS 中制作的user1
下运行的,并使用 Apache 作为前端。
服务器是 LAMP ,带有 CentOS 7.6 和最后一个 cPanel 。无法更改。
程序位于/home/user1/public_html
这是.htaccess
文件:
RewriteEngine On
RewriteRule ^$ http://127.0.0.1:60000/ [P,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://127.0.0.1:60000/$1 [P,L]
这是测试server.js
文件:
var http = require('http');
var fs = require('fs');
http.createServer(function(req, res){
fs.readFile('./test.html',function (err, data){
res.writeHead(200, {'Content-Type': 'text/html','Content-Length':data.length});
res.write(data);
res.end();
});
}).listen(60000);
这是userdomainapp.conf
中的/etc/supervisor.d
[program:userdomainapp]
directory=/home/user1/public_html/
command=node /home/user1/public_html/server.js
autostart=true
autorestart=true
environment=NODE_ENV=production
stderr_logfile=/home/user1/public_html/logs/wasteapp.err.log
stdout_logfile=/home/user1/public_html/logs/wasteapp.out.log
user=user1
一些命令:
# cd /home/user1/public_html/
# node server.js
^C
# node /home/user1/public_html/server.js
按预期,当我访问https://userdomain.com时,以上两个命令都输出test.html
的内容。如果我以root
或user1
身份运行,则是相同的。
我关闭 NodeJS ,并检查网址是否返回 502错误。
一切都很好。
然后我运行 supervisord (作为root
):
# supervisorctl start userdomainapp
userdomainapp: started
# supervisorctl status
userdomainapp RUNNING pid 42891, uptime 0:00:12
现在,当我访问https://userdomain.com时,刷新时出现 503 或 502 错误。另外,如果我在 supervisord 中检查userdomainapp
的状态,它会在RUNNING
和STARTING
之间来回移动。
也要提及的是,在
userdomainapp.conf
被保存为属于root
用户而不是user1
。
supervisorctl maintail
中的结果是:
2019-01-23 01:19:03,428 INFO success: userdomainapp entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2019-01-23 01:19:03,664 INFO exited: userdomainapp (exit status 1; not expected)
2019-01-23 01:19:04,668 INFO spawned: 'userdomainapp' with pid 42918
2019-01-23 01:19:05,023 INFO exited: userdomainapp (exit status 1; not expected)
2019-01-23 01:19:06,026 INFO spawned: 'userdomainapp' with pid 42929
2019-01-23 01:19:07,028 INFO success: userdomainapp entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2019-01-23 01:19:07,156 INFO exited: userdomainapp (exit status 1; not expected)
2019-01-23 01:19:08,159 INFO spawned: 'userdomainapp' with pid 42939
2019-01-23 01:19:08,919 INFO exited: userdomainapp (exit status 1; not expected)
2019-01-23 01:19:09,922 INFO spawned: 'userdomainapp' with pid 42951
2019-01-23 01:19:10,924 INFO success: userdomainapp entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
有人可以给我提示吗?我真的不知道还能做什么。