亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用docker compose服務時如何使兩個虛擬主機指向同一個項目?

使用docker compose服務時如何使兩個虛擬主機指向同一個項目?

PHP
夢里花落0921 2023-07-21 15:59:55
我有兩個域共享相同的代碼庫和數據庫?,F在我需要兩個域來連接到各自域的兩個不同數據庫。我正在使用 docker compose 在本地設置中提供服務。然后我轉到瀏覽器并輸入 localhost:2000 以查看我的項目是否已服務。我需要兩個不同的域(例如 xyz.com 和 xyz.net)來指向同一個項目。誰可以幫我這個事?
查看完整描述

1 回答

?
當年話下

TA貢獻1890條經驗 獲得超9個贊

您需要解決訪問時兩個域都指向本地主機的問題。在/etc/hosts中添加:

127.0.0.1 xyz.com

127.0.0.1 xyz.net

現在,如果您在瀏覽器中訪問 xyz.com 或 xyz.com,它將解析為您的本地計算機。


配置 apache vhosts 以指向 localhost:2000,如下所示:

<VirtualHost *:80>

        ServerName xyz.com

        ProxyPreserveHost On

        ProxyRequests off


        <Location />

                ProxyPass http://localhost:2000/

                ProxyPassReverse http://localhost:2000/

                Order allow,deny

                Allow from all

        </Location>

</VirtualHost>

第二個:


<VirtualHost *:80>

        ServerName xyz.net

        ProxyPreserveHost On

        ProxyRequests off


        <Location />

                ProxyPass http://localhost:2000/

                ProxyPassReverse http://localhost:2000/

                Order allow,deny

                Allow from all

        </Location>

</VirtualHost>

啟用兩個虛擬主機(sudo a2ensite [name].conf)并重新加載 apache。您還需要 proxy_http mod: sudo a2enmod proxy_http?,F在兩個 url 都指向您的 localhost:2000。


在您的 PHP 應用程序中檢測域并基于該域連接到您需要的任何數據庫。我使用了這個文件 g.php:

<?php


var_dump($_SERVER['HTTP_HOST']);

并在 localhost:2000 上用 php 的開發服務器提供它(您將在 docker 上使用它):


php -S localhost:2000 g.php 

PHP 7.0.33-0ubuntu0.16.04.15 Development Server started at Thu Jul  9 20:34:03 2020

Listening on http://localhost:2000

當我在瀏覽器中訪問 xyz.net 時,我得到:string(7) "xyz.net" 當我在瀏覽器中訪問 xyz.com 時,我得到:string(7) "xyz.com" 


查看完整回答
反對 回復 2023-07-21
  • 1 回答
  • 0 關注
  • 143 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號