国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

webman 多應(yīng)用 綁定不同域名

shixia

感謝 walkor 大佬解決多域名鑒權(quán) 關(guān)于實(shí)現(xiàn)像TP6一樣的多域名控制應(yīng)用解決方案是
安裝 大佬編寫的多域名控制插件 地址:http://wtbis.cn/plugin/11
我對于webman的使用方式是nginx處理靜態(tài)文件 webman處理動(dòng)態(tài)請求 以達(dá)到更高的效率

反向代理配置文件這樣寫

location ^~ /
{
        if (!-e $request_filename){
           proxy_pass http://127.0.0.1:8787;
        }
         #設(shè)置域名 不加這個(gè)webman獲取不到用戶IP
        proxy_set_header Host $host;
        #設(shè)置用戶IP 不加這個(gè)webman獲取不到用戶IP
        proxy_set_header X-Real-IP $remote_addr; 
        #這個(gè)我也不知道干啥的反正加上就對了
        proxy_set_header REMOTE-HOST $remote_addr; 
        #不需要關(guān)閉nginx緩存刪掉下面這行
        proxy_cache                     off;
}

這樣寫的意思是判斷是否為靜態(tài)文件如果為靜態(tài)文件則把反向代理到 webman 的監(jiān)聽地址 并關(guān)閉了nginx的反向代理緩存 (為什么要關(guān)閉反向代理緩存,因?yàn)楫?dāng)你的響應(yīng)頭中帶有緩存標(biāo)識(shí)時(shí) 不只是瀏覽器會(huì)緩存這個(gè)請求nginx也會(huì)緩存這個(gè)請求(這個(gè)時(shí)候請求就到不了webman中),當(dāng)瀏覽器緩存了這個(gè)請求時(shí)nginx是完全沒有必要去緩存的畢竟我們要的只是讓他轉(zhuǎn)發(fā))

偽靜態(tài)文件這樣寫

假設(shè)有應(yīng)用 A 綁定域名 www.a.com 應(yīng)用 B 綁定 www.b.com

if (-f $request_filename){
    break;
}
# 根據(jù)域名重寫url
if ($host = 'www.a.com') {
    rewrite ^/(.*)$ /A/$1 last;
}
# 根據(jù)域名重寫url
if ($host = 'www.b.com') {
    rewrite ^/(.*)$ /B/$1 last;
}

這樣即可這樣不會(huì)導(dǎo)致靜態(tài)文件的url也被重寫

然后最重要的一步 配置nginx主配置文件下面我用的寶塔 如果是自己手動(dòng)裝的nginx 你們大概也知道怎么替換

7397 4 23
4個(gè)回答

walkor 打賞

不用開多端口,給每個(gè)應(yīng)用加一個(gè)中間件,中間件里判斷域名,如果域名不對就返回404。

http://wtbis.cn/doc/webman/middleware.html
http://wtbis.cn/doc/webman/multiapp.html#%E5%A4%9A%E5%BA%94%E7%94%A8%E4%B8%AD%E9%97%B4%E4%BB%B6%E9%85%8D%E7%BD%AE

  • shixia 2022-02-21

    那樣的話還是會(huì)使得url中帶有應(yīng)用名,這樣的話感覺非常麻煩 還有其他方案嗎大佬

  • walkor 2022-02-21

    url不帶域名,域名可以直接通過 $request->host() 獲取

  • shixia 2022-02-21

    大佬,我明白你的意思 就是域名鑒權(quán) 只有指定域名可以訪問到應(yīng)用 ,假設(shè)我有倆應(yīng)用 admin client admin應(yīng)用用中間件限制域名為www.admin.com 那我訪問這個(gè)應(yīng)用時(shí)我的url 依舊是 https://www.admin.com/admin/xxxx 這樣去訪問, 我想要的是直接域名指向應(yīng)用 如上 我想要的url是 https://www.admin.com/xxxx 省略掉應(yīng)用名部分

  • shixia 2022-02-21

    這種應(yīng)該從入口文件就開始分辨根據(jù)應(yīng)用綁定的域名來進(jìn)行訪問

  • shixia 2022-02-21

    但是我沒找到webman 的入口文件是哪個(gè)

  • Tinywan 2022-02-22

    直接使用Nginx

  • walkor 2022-02-22

    用nginx做url重寫應(yīng)該是可行的方案。稍后我寫個(gè)webman的域名綁定插件,到時(shí)候應(yīng)該可以做到按照域名綁定應(yīng)用,并且可以簡寫url地址。

walkor 打賞

應(yīng)用域名綁定插件寫好了,試下
http://wtbis.cn/plugin/11

  • ersic 2022-02-22

    ??

  • chen 2022-02-22

    大佬牛逼!

  • shixia 2022-03-02

    大佬,我來反饋BUG了

    1. 如果開啟插件后如果簡寫URL那么倆個(gè)應(yīng)用之間不能有同名控制器否則會(huì)報(bào)錯(cuò);
      2.目測這個(gè)bug無法解決因?yàn)楹唽慤RL只是通過添加路由的方式做到綁定域名
      3.感覺要通過修改原生入口文件才能對這個(gè)進(jìn)行修復(fù)
  • shixia 2022-03-02

    然后發(fā)現(xiàn)一個(gè)不知道算不算bug的bug就是
    假設(shè)
    我有倆應(yīng)用第一個(gè)client 綁定的域名是 client.123.com 有控制器index
    第二個(gè)應(yīng)用叫 api 綁定的域名是 api.123.com
    然后我訪問 api.123.com/index 然后訪問到的應(yīng)用是client

  • shixia 2022-03-02

    大佬看看怎么完善一下

  • walkor 2022-03-02

    config/plugin/webman/domain/app.php里的 short_url 設(shè)置為false,然后用nginx重寫url,類似這樣配置

    server {
        listen 80;
        server_name abc.com admin.abc.com blog.abc.com;
        # 根據(jù)域名重寫url
        if ($host = 'admin.abc.com') {
            rewrite ^/(.*)$ /admin/$1 last;
        }
        # 根據(jù)域名重寫url
        if ($host = 'blog.abc.com') {
            rewrite ^/(.*)$ /blog/$1 last;
        }
        location / {
                    proxy_pass http://127.0.0.1:8787/;
                    proxy_set_header X-Real-IP $remote_addr;
                    proxy_set_header Host $http_host;
            }
    }
  • shixia 2022-03-02

    大佬那是不是還可以在nginx中配置偽靜態(tài)就是用戶在訪問的時(shí)候自己吧.html那些給嘎了

  • shixia 2022-03-02

    然后大佬這樣重寫url直接把靜態(tài)文件的url也重寫了

  • walkor 2022-03-03

    每個(gè)域名配置個(gè)nginx

    server {
        listen 80;
        server_name admin.abc.com;
        root /your/webman/public;
    
        if (!-e $request_filename) {
              rewrite ^/(.*)$ /admin/$1 break;
        }
        location / {
                    proxy_pass http://127.0.0.1:8787/;
                    proxy_set_header X-Real-IP $remote_addr;
                    proxy_set_header Host $http_host;
            }
    }
  • shixia 2022-03-09

    老大,我的解決方案是這樣的依舊是一個(gè)nginx配置 然后把偽靜態(tài)規(guī)則獨(dú)立出來成為一個(gè)文件然后引用 if (-f $request_filename){
    break;
    }
    //后面根據(jù)域名重寫URL

  • walkor 2022-03-09

    好的,你這樣更簡潔些。能發(fā)個(gè)完整的example 配置分享給大家?感謝

  • shixia 2022-03-09

    發(fā)在哪里

  • walkor 2022-03-09

    就這個(gè)帖子里

  • shixia 2022-03-09

    老大弄完了,保姆級教程

  • walkor 2022-03-09

    非常感謝

  • shixia 2022-03-09

    應(yīng)該的

  • shixia 2022-03-09

    對了老大,關(guān)于thinkorm 其實(shí)還有一個(gè)小bug 就是 模型,創(chuàng)建的模型文件默認(rèn)是繼承support/model 然后 support/model呢默認(rèn)繼承的是Illuminate\Database\Eloquent\Model as BaseModel 如果想要使用ThinkOrm模型的話得繼承think\Model 然后這個(gè)問題在think插件里面也沒有得到解決

  • walkor 2022-03-09

    對, support\Model 是針對laraval數(shù)據(jù)庫的,thinkorm不能用它。安裝thinkorm插件并不影響laraval數(shù)據(jù)庫的使用。

  • shixia 2022-03-09

    但是命令行生成的模型 默認(rèn)就是繼承的support/model 但是如果我換成了think的那肯定一般來說都是廢棄laraval數(shù)據(jù)庫

  • walkor 2022-03-09

    我懂你的意思了,后面這里優(yōu)化下,如果安裝了thinkorm,命令生成thinkorm的model

  • shixia 2022-03-09

    恩恩

  • walkor 2022-03-10

    弄好了,composer require webman/console ^v1.0.12
    阿里云composer代理好像有點(diǎn)問題,如果下載不到v1.0.12的話去掉代理 composer config -g --unset repos.packagist 試下

  • shixia 2022-03-10

    okok

  • shixia 2022-03-10

    老大睡了沒,問個(gè)經(jīng)驗(yàn)性問題 我用think-cache建立一個(gè)redis對象 然后我把這個(gè)對象放在 控制器的類成員里面應(yīng)該沒啥問題吧,按道理應(yīng)該是沒問題的

  • walkor 2022-03-10

    沒問題

woeoio

我是來給大佬助威的~~~

  • woeoio 2022-03-14

    感謝 十夏 大佬遠(yuǎn)程幫忙解決類型問題!

gddd
if (-f $request_filename){
    break;
}
# 根據(jù)域名重寫url
if ($host = 'www.a.com') {
    rewrite ^/(.*)$ /A/$1 last;
}
# 根據(jù)域名重寫url
if ($host = 'www.b.com') {
    rewrite ^/(.*)$ /B/$1 last;
}

這樣后,public目錄下面的靜態(tài)文件就能直接下載了,比如支付 證書啥的

  • nitron 2022-04-27

    支付證書一般不會(huì)放倒public目錄的吧

年代過于久遠(yuǎn),無法發(fā)表回答
??