我在[{1}}(即godaddy.com
)为我的mydomain.com
(即digitalocean.com
)的小滴购买了一些域名。199.216.110.210
。我在Droplet上的端口80上运行了一个nodejs应用程序。从godaddy.com
开始,我将屏蔽mydomain.com转发到199.216.110.210
,我可以看到可能应用。
现在我想在不同端口上的199.216.110.210
个节点应用程序上运行,使用ngnix作为反向代理。我按照这里的说明(www.digitalocean.com/community/articles/how-to-host-multiple-node-js-applications-on-a-single-vps-with-nginx-forever-and-crontab
)。
我的nginx .conf文件是
server {
listen 80;
server_name mydomain.com;
location / {
proxy_pass http://localhost:3000;
# same as in the link above
}
}
(我确信它已被阅读:如果我在那里发出错误,当ngnix启动时,ngnix会报告它。)
我在端口3000上启动nodejs应用程序:
mydomain.com
,但是ngnix始终显示欢迎页面。mydomain.com: 3000
也不起作用,199.216.110.210:3000
。 来自godaddy.com,如果我转发屏蔽mydomain.com
到199.216.110.210:3000
,我可以看到可能应用。
但我不喜欢这个解决方案。我希望域指向我的droplet,而不指定端口并使用nginx管理它们。
我如何获得一个用于ngnix的域名作为反向代理来选择我的应用程序,映射到不同端口上的不同域?我认为从godaddy.com转发有点限制。
答案 0 :(得分:0)
在您的服务器中,转到/var/log/nginx
并执行tail -F *log
。现在在另一个shell中重新启动nginx。
我怀疑你的域名太长了,nginx会抱怨它的hash_bucket_size太小了。如果是这种情况,请打开/etc/nginx/nginx.conf
并确保该行
server_names_hash_bucket_size 64;
存在,值为64并且未注释。然后执行sudo service nginx reload
,检查一切是否按预期工作。
答案 1 :(得分:0)
我将逐步详细说明如何在我的aws ec2实例中进行此操作;
我为我的实例设置了DNS记录,因此我可以将mydomain.com
设置为192.168.123.123
(我的特定IP)。
在我的实例中,我一直在端口3000中运行我的node.js应用程序(我通过从命令行发出curl localhost:3000
来测试它)
然后我下载this .sh
文件以正确地实例化nginx; curl -o nginxStarter.sh https://gist.githubusercontent.com/renatoargh/dda1fbc854f7957ec7b3/raw/c0bc1a1ec76e50cdb4336182c53a0b222edb6c0e/start.sh
我使用this configuration file配置nginx。把这个文件放进去; /etc/nginx/nginx.conf
使用此命令启动nginx; sudo sh nginxStarter.sh start
PS。:对于多个应用程序,只需复制将请求路由到特定端口的行,非常简单......!如果不需要,您可以删除有关SSL的行。