假设我有三个不同的站点运行。端口3000上的node.js应用,端口80上的apache/php,然后在端口5000上进行go应用。
我如何有三个转到每个端口的不同域名?
我在考虑所有域所指的端口80上的基本路由系统,然后该程序查看URL和重定向以纠正端口。是建议吗?有更好的方法吗?
谢谢
如果您已经在使用nginx,则可以很容易地为不在端口80上的应用程序设置命名的基于命名的反向代理vhost:
server {
listen *:80;
server_name nodeapp.mydomain.com;
location / {
proxy_pass http://localhost:3000;
}
}
server {
listen *:80;
server_name goapp.mydomain.com;
location / {
proxy_pass http://localhost:5000;
}
}
如果您在端口80上运行的内容只是一个代理层,则可以使用Caddy,这本身是用GO编写的。您的球童会喜欢这样的东西:
nodeapp.mydomain.com {
proxy / localhost:3000
}
goapp.mydomain.com {
proxy / localhost:5000
}
如果没有,您仍然可以使用球童,只将您的PHP应用程序移至其他端口。
我建议Caddy,因为它的创建者在任何地方都在寻求安全性(如果您的网站适用,您会注意到您将获得自动HTTPS(。配置(在Caddyfile中完成(通常也很短而且很容易理解。CADDY具有广泛的用例,并且可以随附插件以进行几乎所有您可以考虑的事情。