[英]TomEE Service will not allow to access the application from another LAN Machine
[英]Access virtual host from another machine over LAN
www.project1.com
和www.project2.com
。httpd.conf
和httpd-vhosts.conf
文件修改為我在下面提到的更改。 使用我的瀏覽器,當我鍵入www.project1.com
或www.project2.com
時,我成功地在安裝了服務器的筆記本電腦上打開了我的 web 頁面。
“主機文件”中的更改:我已將以下內容附加到文件末尾:-
127.0.0.1 localhost
127.0.0.1 www.project2.com
127.0.0.1 www.project1.com
httpd.conf
文件中的更改:-
Include conf/extra/httpd-vhosts.conf
httpd-vhosts
文件中的更改:-
NameVirtualHost *:80
<Directory "D:/websites/">
AllowOverride All
Order Deny,Allow
Allow from all
</Directory>
<VirtualHost 127.0.0.1>
DocumentRoot "D:/websites/wamp/www/"
ServerName localhost
</VirtualHost>
<VirtualHost 127.0.0.1>
DocumentRoot "D:/websites/project1/"
ServerName www.project1.com
</VirtualHost>
<VirtualHost 127.0.0.1>
DocumentRoot "D:/websites/project2/"
ServerName www.project2.com
</VirtualHost>
PC_1
(帶有服務器的瀏覽器)中的瀏覽器打開這些 web 頁面,我如何從 PC_2 中的瀏覽器訪問這些PC_2
頁面?
(我指的是通過 LAN 連接到PC_1
的任何 PC。)
除了danp的答案之外,您還可以通過為虛擬主機分配端口來訪問虛擬主機,而無需更改客戶端計算機的etc / hosts文件。 如果您想使用移動設備或平板電腦設備訪問服務器,這是理想的選擇:
編輯服務器的httpd.conf
文件:
\\wamp\\bin\\apache\\apache2.2.x\\conf\\httpd.conf
搜索“ Listen
”(第61行)。 您應該看到允許Apache偵聽端口80的以下內容:
Listen 0.0.0.0:80 Listen [::0]:80
添加以下行以添加偵聽端口81
(或任何端口):
Listen 0.0.0.0:81 Listen [::0]:81
編輯httpd-vhosts.conf
文件:
\\wamp\\bin\\apache\\apache2.2.x\\conf\\extra\\httpd-vhosts.conf
將“虛擬主機”標記更改為端口81
:
<VirtualHost *:81> DocumentRoot "D:/websites/project1/" ServerName www.project1.com </VirtualHost>
重啟Apache服務器。
在客戶端計算機/平板電腦/移動設備上,在Web瀏覽器上,按以下格式輸入服務器的IP地址( 192.168.0.10
或任何IP),然后輸入端口號:
http://192.168.0.10:81
在virtualhost指令中,將127.0.0.1
更改為*:80
,正如Gabriel所提到的,在另一台計算機的hosts文件中添加一個條目,添加您的域以與服務器的IP相關聯。
當您將明確的IP放入指令時,apache將只監聽該IP - 但通配符將告訴它綁定到它可用的所有IP。
<VirtualHost *:80>
DocumentRoot "D:/websites/project1/"
ServerName www.project1.com
</VirtualHost>
例如,如果您的服務器位於192.168.1.70上,那么在LAN上的其他計算機上,hosts條目將如下所示:
192.168.1.70 www.project1.com
重啟apache,應該可以正常工作。
請注意,當您使用虛擬主機時,如果無法在HTTP請求標頭中傳遞的域與配置中的站點設置之間進行匹配,則apache將使用第一個定義作為默認值,這就是您的默認設置頁面出現了。
您告訴apache使用NameVirtualHost *:80
指令綁定到所有IP,但之后沒有為該外部IP設置站點。 希望有所幫助!
本地網絡中有兩台計算機。
計算機(192.168.1.70)安裝程序(D:\\ wamp \\ bin \\ apache \\ Apache2.2.11 \\ conf \\ extra \\ httpd-vhosts.conf):
<VirtualHost *:80>
DocumentRoot "D:/websites/project1/"
ServerName www.project1.com
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "D:/websites/project2/"
ServerName www.project2.com
</VirtualHost>
B計算機設置(c:/ windows / system32 / drives / etc / hosts):
192.168.1.70 www.project1.com
192.168.1.70 www.project2.com
B訪問A,我的項目正在運行。
要為所選答案考慮的幾個更新點:
Apache版本2.3.11之后不再使用NameVirtualHost
,可以省略。
在2.3.11及更高版本中,只要在多個虛擬主機中使用IP地址和端口組合,就會自動為該地址啟用基於名稱的虛擬主機。
因為我們正在談論通過LAN托管網站,所以我們要求*僅接受來自本地網絡上IP地址的連接。 例如,在公共Linksys路由器上,分配給網絡上每個設備的默認IP介於192.168.1.100到192.168.1.255之間。 您可以通過使用Require ip 192.168.1
允許LAN上所有設備與IP地址192.168.1.XXX進行連接(請注意,最后一個八位字節不在IP上以允許整個范圍)。
這允許您配置每個項目的訪問權限,以便一個可以通過LAN可用,另一個只能在本地使用。
# This will allow all LAN connections to www.project1.com <VirtualHost *:80> DocumentRoot "D:/websites/project1/" <Directory "D:/websites/project1/"> Require local Require ip 192.168.1 </Directory> ServerName www.project1.com </VirtualHost> # This will allow only the machine hosting the website to access www.project2.com <VirtualHost *:80> DocumentRoot "D:/websites/project2/" <Directory "D:/websites/project2/"> Require local </Directory> ServerName www.project2.com </VirtualHost>
如果沒有路由器將端口80上的流量轉發給您的主機,您的站點將不會公開提供,我相信這被認為是最佳做法。 如果您需要控制LAN上設備可用的項目,則尤其必要。
提醒:您的主機應配置為使用靜態IP地址,而不是由路由器的DHCP分配。 由於我們正在編輯其他設備的hosts文件以指向服務器的IP,因此我們不希望它發生變化。
*我之所以包含這一點,是因為在本地開發服務器上擁有訪問限制是很常見的,您需要專門將其提供給本地網絡。
您需要更改您嘗試查看該頁面的計算機上的hosts文件。
因此,您需要將它們添加到其他lan計算機上的hosts文件中。
如果您無法訪問本地的虛擬主機服務器。網絡,請檢查您是否已將防火牆配置為允許 httpd.exe 文件(位於文件夾 C:\wamp64\bin\apache\apache2.4.51\bin)允許傳入和傳出連接
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.