服务器里不同域名对应不同应用配置的正确姿势是什么 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yuriko
V2EX    问与答

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

  •  
  •   yuriko 2016-02-05 10:35:42 +08:00 4878 次点击
    这是一个创建于 3543 天前的主题,其中的信息可能已经有所发展或是发生改变。
    服务器这块不是太懂

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

    我希望有一直方式,能分配子域名并对不同域名的请求进行分发,导向不同的端口。
    因为是个人站,流量目前不是那么敏感,简单至上,不过考虑到作为学习,一些先进的技术也可以了解下,那么最合理的选择是什么,
    第 1 条附言    2016-02-05 13:55:40 +08:00
    有几个网友似乎 gei 歪了我的意思,我澄清下大概意思就 @just1 理解的差不多。场景是我有多个不同的域名(以及子域名),指向了同一个服务器,那么我要如何导向不同的本地应用,毕竟 80 端口就只有一个。

    我的思路是由一个全局的应用监听 80 然后代理到各个不同的端口。
    以及我知道 nginx 能做这件事,不过我觉得只为了这么个事情就动用 nginx 会不会体量太大,所以来寻求一个更加合理的方案。

    p.s.子域名的分配该怎么做?在 DNS 解析商那边设置就行了吗?
    28 条回复    2016-02-06 11:26:21 +08:00
    Slienc7
        1
    Slienc7  
       2016-02-05 10:47:59 +08:00   1
    Cannikin
        2
    Cannikin  
       2016-02-05 10:53:52 +08:00   1
    gamexg
        3
    gamexg  
       2016-02-05 10:55:59 +08:00   1
    既然折腾了,那么干脆使用 docker 把每个应用独立吧。

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

    listen 80
    server_name domainA.com

    listen 8080
    server_name domainB.com

    listen 8989
    server_name sub.domianA.com
    JJaicmkmy
        6
    JJaicmkmy  
       2016-02-05 11:04:43 +08:00 via iPad
    @JJaicmkmy PS :每行末尾要加;分号
    just1
        7
    just1  
       2016-02-05 11:07:50 +08:00 via Android   1
    @JJaicmkmy 楼主是要监听 80 ,反代不同的端口
    just1
        8
    just1  
       2016-02-05 11:12:25 +08:00 via Android
    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
        9
    DT27  
       2016-02-05 11:13:49 +08:00   1
    感觉楼上都理解错了。
    访问不同端口必须域名后面跟端口号。不能直接访问域名服务器导向特殊端口。
    kslr
        10
    kslr  
       2016-02-05 11:28:39 +08:00 via Android   1
    主机名不就是做这个的
    shyling
        11
    shyling  
       2016-02-05 11:45:28 +08:00 via iPad   1
    域名域名:端口就能直接访问对应的服务咯。
    如果是 web ,需要多个域名同时使用 80 端口,那就需要用 nginx 之类的建立虚拟主机进行反代
    其他的服务的话,好像没有特别好的重用用同一个端口的方法。。因为 http 协议会把域名信息发送到服务器。。别的有的仅仅是通过在客户端解析出来 ip
    yuriko
        12
    yuriko  
    OP
       2016-02-05 13:54:44 +08:00
    @xgowex @Cannikin @ferock @JJaicmkmy @just1 @DT27 @kslr @shyling @gamexg

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

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

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


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

    子域名在 dns 解析商解析到你的 vps , nginx 对应配置一下就行
    lyragosa
        19
    lyragosa  
       2016-02-05 14:26:52 +08:00   1
    @yuriko 是的,所以选 virtualmin 吧,全程只需要点点鼠标就可以完成。你连 config 文件在哪儿都不需要知道。绝对符合“完成手上的东西之前不用花太多时间在上面”
    VmuTargh
        20
    VmuTargh  
       2016-02-05 14:31:22 +08:00
    lighttpd
    要 HTTP/2 就 h2o
    yuriko
        21
    yuriko  
    OP
       2016-02-05 14:34:12 +08:00
    @lyragosa 恩好回头研究一下
    Alwaysonline
        22
    Alwaysonline  
       2016-02-05 14:35:04 +08:00 via iPhone
    非常推荐用面板程序解决这些问题,国外 CP 或 DA ,国内 AMH 。
    懒得折腾,安心使用好了。
    yuriko
        23
    yuriko  
    OP
       2016-02-05 14:41:47 +08:00
    @Alwaysonline 能不用缩写嘛~这么写我怎么检索是啥呢……哭
    Alwaysonline
        24
    Alwaysonline  
       2016-02-05 14:58:55 +08:00   1
    @yuriko

    国外推荐 cPanel 和 directadmin ,个人推荐 directadmin ,简单而且终身授权便宜 300 元左右。

    国内推荐 AMH http://amh.sh/

    图片是 directadmin 的用户管理界面,清晰可操作,安心开发程序就好,环境什么的其他交给类似的工具吧。
    shyling
        25
    shyling  
       2016-02-05 17:14:21 +08:00 via iPad
    看了看更新:nginx 是很轻量稳定的~别自己再加模块就好~配置也很简单~
    god
        26
    god  
       2016-02-05 17:53:00 +08:00 via iPad
    个人用户或小厂,花点钱解决的问题不要太折腾
    yuriko
        27
    yuriko  
    OP
       2016-02-06 07:45:24 +08:00
    @god 同意,物色合适的成品 ing
    ys0290
        28
    ys0290  
       2016-02-06 11:26:21 +08:00 via iPhone   1
    就装个 nginx ,根据楼上设置反代,并不复杂,你说的我懂,因为我就是这么个情况这么干的,泛域名解析这方面好像并不是每个 nameserver 都支持的,子域名个数没超过限制的话就一个个 CNAME 到主域名吧
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2682 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 13:52 PVG 21:52 LAX 06:52 JFK 09:52
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86