gpt4 book ai didi

linux - 如何在 gcloud 上没有 deploy.sh 文件的情况下为 node.js 应用程序打开端口 80?

转载 作者:太空宇宙 更新时间:2023-11-04 09:25:33 24 4
gpt4 key购买 nike

我有一个节点应用程序,如果我手动将其放入 gcloud computeVM 并运行它,它运行良好。

以下是并发症(全部针对 unix):

1.) 我有一个域名。所以我添加了 dns 区域记录以指向上面的虚拟机。

2.) 为了计算 VM 响应,应该有进程监听 80

3.) 如果我们遵循 https://cloud.google.com/nodejs/getting-started/run-on-compute-engine#download_app , 它指定在 8080 上运行应用程序。

4.) <1024端口,需要root权限才能打开。

5.) 所以从 npm start 开始,我将启动脚本更改为使用“sudo npm start”

6.) 然后出现以下错误:my-app-instance supervisord: nodeapp sudo: no tty present and no askpass program specified

7.) 如果我每次都必须“sudo visudo”并在每次部署后重新启动实例时添加“用户名 ALL = NOPASSWD:”,这是我最不喜欢的。

我已经包含了 stratup-script 的相关部分以获取更多信息:

# Install app dependencies
cd /myrepo/opt/app/servers
sudo npm install

# Create a nodeapp user. The application will run as this user.
useradd -m -d /home/nodeapp nodeapp
chown -R nodeapp:nodeapp /myrepo/opt/app/servers

# Configure supervisor to run the node app.
cat >/etc/supervisor/conf.d/node-app.conf << EOF
[program:nodeapp]
directory=/myrepo/opt/app/servers
command=sudo npm start
autostart=true
autorestart=true
user=nodeapp
environment=HOME="/home/nodeapp",USER="nodeapp",NODE_ENV="production"
stdout_logfile=syslog
stderr_logfile=syslog
EOF

A.) 我的要求很简单:我的谷歌域现在指向上面的计算 VM。每当用户键入 www.domainname.com 时,它应该将他带到该网站,而 url 中没有任何端口号。如何通过简单修改启动脚本(首选)打开80端口?

B.) 如果我必须使用教程中指定的 deploy.sh,它会自动执行吗?或者如果我必须自动执行它,程序是什么。

注意:我不是 unix 专家。任何帮助将不胜感激。

最佳答案

考虑使用 reverse proxy .这允许您在 8080 等端口上运行您的应用程序而无需 root 权限,并拥有在端口 80 上运行并代理流量到您的应用程序的特权 HTTP 服务器(如 Apache 或 Nginx)。这是常见的做法,比以根权限运行您的应用程序要安全得多。

关于linux - 如何在 gcloud 上没有 deploy.sh 文件的情况下为 node.js 应用程序打开端口 80?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36902749/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com