服务器里不同域名对应不同应用配置的正确姿势是什么

2016-02-05 10:35:42 +08:00
 yuriko
服务器这块不是太懂

出于好玩,买了 VPS 来折腾,域名什么的都没问题了
因为有各种各样的奇怪 web 应用等等,技术平台也不一样,监听的是不同的端口,那么问题来了

我希望有一直方式,能分配子域名并对不同域名的请求进行分发,导向不同的端口。
因为是个人站,流量目前不是那么敏感,简单至上,不过考虑到作为学习,一些先进的技术也可以了解下,那么最合理的选择是什么,
4277 次点击
所在节点    问与答
28 条回复
Slienc7
2016-02-05 10:47:59 +08:00
Cannikin
2016-02-05 10:53:52 +08:00
gamexg
2016-02-05 10:55:59 +08:00
既然折腾了,那么干脆使用 docker 把每个应用独立吧。

https://github.com/jwilder/nginx-proxy
ferock
2016-02-05 10:57:11 +08:00
v2ex 的贴友还是比较有耐心的。。。 lz 真应该去看看 nginx 手册
JJaicmkmy
2016-02-05 11:04:03 +08:00
nginx

listen 80
server_name domainA.com

listen 8080
server_name domainB.com

listen 8989
server_name sub.domianA.com
JJaicmkmy
2016-02-05 11:04:43 +08:00
@JJaicmkmy PS :每行末尾要加;分号
just1
2016-02-05 11:07:50 +08:00
@JJaicmkmy 楼主是要监听 80 ,反代不同的端口
just1
2016-02-05 11:12:25 +08:00
server{
listen 80;
server_name domainA.com;
root /home/wwwroot/sss;
index indezx.php;
}
server{
listen 80;
server_name sss.yourdomain.org;
proxy_pass http://127.0.0.1:8888;
proxy_set_header User-Agent $http_user_agent;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
server{
listen 80;
server_name sss2.yourdomain.org;
proxy_pass http://127.0.0.1:8000;
proxy_set_header User-Agent $http_user_agent;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
手机打,凑合着看吧
DT27
2016-02-05 11:13:49 +08:00
感觉楼上都理解错了。
访问不同端口必须域名后面跟端口号。不能直接访问域名服务器导向特殊端口。
kslr
2016-02-05 11:28:39 +08:00
主机名不就是做这个的
shyling
2016-02-05 11:45:28 +08:00
域名域名:端口就能直接访问对应的服务咯。
如果是 web ,需要多个域名同时使用 80 端口,那就需要用 nginx 之类的建立虚拟主机进行反代
其他的服务的话,好像没有特别好的重用用同一个端口的方法。。因为 http 协议会把域名信息发送到服务器。。别的有的仅仅是通过在客户端解析出来 ip
yuriko
2016-02-05 13:54:44 +08:00
@xgowex @Cannikin @ferock @JJaicmkmy @just1 @DT27 @kslr @shyling @gamexg

感谢大家的回复, append 已更新

以及 @gamexg docker 到底是什么意思呢
lyragosa
2016-02-05 13:58:43 +08:00
docker 这个东西,其实本身设计上是用于给那些大中型公司的运维,需要快速,方便,安全,大批量的部署环境并且每个应用之间不互相影响,并不是特别适合个人网站用的。

如果题主你不是太懂也不想去懂运维上的东西,或者说是不准备在运维上花太多心思,或者是不想陷入器材党不能自拔。我给你推荐一个东西 virtualmin ……用了都说好。
just1
2016-02-05 14:10:59 +08:00
nginx 很轻量级的, 64mb 的 vps 跑还有盈余
yuriko
2016-02-05 14:17:31 +08:00
@lyragosa 主要是 nginx 还是又一些学习曲线的,我想在完成手上的东西之前不用花太多时间在上面,所以看看有什么简单的替代方案不
yuriko
2016-02-05 14:17:56 +08:00
@lyragosa 主要是 nginx 还是又一些学习曲线的,我想在完成手上的东西之前不用花太多时间在上面,所以看看有什么简单的替代方案不


@just1
我是指复杂度嘛……感觉 nginx 的功能好多啊好多
loading
2016-02-05 14:20:14 +08:00
自己去看 nginx
just1
2016-02-05 14:25:24 +08:00
@yuriko nginx 简单掌握很快的,就
根目录配置 root /path/www/....;
默认主页 index index.html;
重定向 rewrite
返回异常 return 403;
再加一个反代就差不多了

子域名在 dns 解析商解析到你的 vps , nginx 对应配置一下就行
lyragosa
2016-02-05 14:26:52 +08:00
@yuriko 是的,所以选 virtualmin 吧,全程只需要点点鼠标就可以完成。你连 config 文件在哪儿都不需要知道。绝对符合“完成手上的东西之前不用花太多时间在上面”
VmuTargh
2016-02-05 14:31:22 +08:00
lighttpd
要 HTTP/2 就 h2o

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/255489

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX