Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何在gcloud上打开node.js应用程序的端口80而不使用deploy.sh文件?_Linux_Unix_Gcloud - Fatal编程技术网

Linux 如何在gcloud上打开node.js应用程序的端口80而不使用deploy.sh文件?

Linux 如何在gcloud上打开node.js应用程序的端口80而不使用deploy.sh文件?,linux,unix,gcloud,Linux,Unix,Gcloud,我有一个节点应用程序,如果我手动将其放入gcloud computeVM并运行它,它可以正常运行 下面是一些复杂的问题(都与unix有关): 我有一个域名。所以我添加了dns区域记录以指向上面的VM 2.)为了让compute VM做出响应,80上应该有进程侦听 3.)如果我们遵循,它指定在8080上运行应用程序 4.)对于小于1024的端口,需要root权限才能打开端口 5.)因此,从npm开始,我将启动脚本更改为使用“sudo npm start” 6.)然后它给出了以下错误:my app

我有一个节点应用程序,如果我手动将其放入gcloud computeVM并运行它,它可以正常运行

下面是一些复杂的问题(都与unix有关):

我有一个域名。所以我添加了dns区域记录以指向上面的VM

2.)为了让compute VM做出响应,80上应该有进程侦听

3.)如果我们遵循,它指定在8080上运行应用程序

4.)对于小于1024的端口,需要root权限才能打开端口

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

6.)然后它给出了以下错误:my app instance SupervisorOrd:nodeapp sudo:不存在tty,也没有指定askpass程序

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

我已包含stratup脚本的相关部分以获取更多信息:

# 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
#安装应用程序依赖项
cd/myrepo/opt/app/servers
sudo npm安装
#创建一个nodeapp用户。应用程序将以此用户身份运行。
useradd-m-d/home/nodeapp nodeapp
chown-R nodeapp:nodeapp/myrepo/opt/app/servers
#配置主管以运行节点应用程序。

cat>/etc/supervisor/conf.d/node-app.conf查看使用。这允许您在没有root权限的情况下在端口(如8080)上运行应用程序,并在端口80上运行具有权限的HTTP服务器(如Apache或Nginx),并将流量代理到应用程序。这是一种常见的做法,并且比使用root权限运行应用程序更安全。

请研究使用。这允许您在没有root权限的情况下在端口(如8080)上运行应用程序,并在端口80上运行具有权限的HTTP服务器(如Apache或Nginx),并将流量代理到应用程序。这是常见的做法,比以root权限运行应用程序更安全。

I启用了nginx。我可以上传conf文件。所以删除我之前的评论!!!正在尝试检查反向代理。nginx反向代理已工作::)。。。域名路由到另一台服务器上的8080:)。但看起来nginx是有报酬的。现在我正在接受免费审判。我猜他们只允许在云上使用“nginx plus”。有一个高级的“nginx plus”,但你应该能够在任何Linux-Google计算引擎VM上设置免费的开源版本。例如,你可以看到,(它并不能完全满足你的要求,但它给出了一个免费版Nginx的例子)。我可以上传conf文件。所以删除我之前的评论!!!正在尝试检查反向代理。nginx反向代理已工作::)。。。域名路由到另一台服务器上的8080:)。但看起来nginx是有报酬的。现在我正在接受免费审判。我猜他们只允许在云上使用“nginx plus”。有一个高级的“nginx plus”,但你应该能够在任何Linux-Google计算引擎VM上设置免费的开源版本。例如,请看,(它并没有完全实现您在这里想要的功能,但它给出了一个Nginx免费版本的示例)。