【已解决】webman多域名绑定不同应用的方法

建站管家

问题描述

1、宝塔安装的异步站点
2、webman版本:"workerman/webman-framework": "^2.1"
3、域名绑定插件:"webman/domain": "^2.1" 【https://www.workerman.net/plugin/11

我希望admin.abc.com访问/app/admin应用,www.abc.com访问/app/cn应用

但是访问域名时,显示404页面

在域名绑定插件的配置如下:

'enable' => true,
'bind' => [
    'admin.abc.com' => 'admin',
    'www.abc.com' => 'cn',
],
......

在宝塔异步站点的伪静态配置文件如下:

if (-f $request_filename){
    break;
}

if ($host = 'www.abc.com') {
    rewrite ^/(.*)$ /cn/$1 last;
}
if ($host = 'admin.abc.com') {
    rewrite ^/(.*)$ /admin/$1 last;
}

重启异步站点服务后,访问admin.abc.com和www.abc.com都显示404页面

请教:上述做法有问题吗?怎么修改?

410 1 0
1个回答

wocall

能分享一下最终如何解决的么?
如果是通过nginx,希望提供一个完整的配置。
谢谢🙏

  • 建站管家 18天前

    主要是伪静态配置文件,其他的按照官方文档照做即可,伪静态配置文件如下:# 将请求转发到webman
    location ^~ / {
    proxy_set_header Host $http_host;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_http_version 1.1;
    proxy_set_header Connection "";

    # 根据不同的域名设置不同的应用前缀
    if ($http_host = "www.abc.com") {
        rewrite ^/(.*)$ /cn/$1 break;
    }
    
    if ($http_host = "admin.abc.com") {
        rewrite ^/(.*)$ /admin/$1 break;
    }
    
    proxy_pass http://127.0.0.1:8787;

    }

  • wocall 18天前

    感谢回复,不知道啥原因,复刻你的代码,rewrite光admin,还是报404错误。app/admin能出来html,但加载的文件还是不行。我再摸索摸索

🔝