2011-08-23 16 views
34

Tôi có hai tên miền, hai ssl certs và hai địa chỉ ip. Tôi đang cố gắng để cấu hình các tập tin virtualhost apache của tôi cho họ.NameVirtualHost *: 80 không có VirtualHosts

Trước tiên, tôi đã nhận xét tất cả các trường hợp "NameVirtualHost" và "Nghe" cho các cổng 80 và 443. Sau đó, tôi đã làm như sau với các tệp máy chủ ảo của mình.

tập tin VirtualHost cho domain1:

NameVirtualHost 1.1.1.1:80 
Listen 1.1.1.1:80 
Listen 1.1.1.1:443 
<VirtualHost 1.1.1.1:80> 
    ServerName domain1.com 
    ... 
</VirtualHost> 
<VirtualHost 1.1.1.1:443> 
    ... 
</VirtualHost> 

tập tin VirtualHost cho tên miền 2:

NameVirtualHost 2.2.2.2:80 
Listen 2.2.2.2:80 
Listen 2.2.2.2:443 
<VirtualHost 2.2.2.2:80> 
    ServerName domain2.com 
    ... 
</VirtualHost> 
<VirtualHost 2.2.2.2:443> 
    ... 
</VirtualHost> 
+0

* NameVirtualHost * đã bị phản đối và nó không còn cần thiết. – andreszs

Trả lời

27

Một nơi nào đó trong cấu hình của bạn, có thể là trong các tập tin cấu hình mặc định của Apache (Tôi nghĩ /etc/apache2/httpd.conf trong Ubuntu ai đó có thể sửa tôi trong các ý kiến), là một dòng trông giống như:

NameVirtualHost *:80 

# Also 
Listen 80 
Listen 443 

Bình luận chúng ra, và trong VirtualHost file cấu hình của bạn, thêm:

Listen 111.111.111.111:80 
Listen 222.222.222.222:80 
# If also using SSL 
Listen 111.111.111.111:443 
Listen 222.222.222.222:443 

NameVirtualHost 111.111.111.111:80 
NameVirtualHost 222.222.222.222:80 

Trong nhiều cấu hình mặc định của Apache, các ListenNameVirtualHost chỉ được cung cấp với các kí hiệu, hoặc trên toàn cầu để áp dụng cho tất cả các giao diện mạng. Vì bạn đang sử dụng nhiều địa chỉ IP liên kết với các cấu hình khác nhau, bạn cần phải cụ thể hơn trong các chỉ thị cấu hình của mình hơn tệp cấu hình mặc định của bản phân phối.

+0

+1 ... có vẻ đúng. implimenting. cho bạn biết ngay. – Jay

+0

/etc/apache2/httpd.conf trống. /etc/apache2/httpd.conf không có "NameVirtualHost" hoặc "Listen". Vẫn đang nhìn. – Jay

+12

@Hãy thử 'grep -r Listen/etc/apache2' và' grep -r NameVirtualHost/etc/apache2' –

41

Tôi đã bỏ qua lỗi tương tự trong 2 tháng tôi đã có máy chủ Ubuntu. Tôi thấy bài đăng này đã giải quyết được lỗi một cách độc đáo. Cảm ơn bạn Michael! Cũng như bạn Jay, tôi đã tìm thấy thủ phạm tại /etc/apache2/ports.conf. Tôi cố gắng đơn giản này:

# NameVirtualHost *:80
tôi chỉ nhận xét ra rằng dòng và không có thay đổi khác và không

"NameVirtualHost *: 80 không có VirtualHosts"

+6

Tuyệt vời! Tôi cũng vậy! Giải quyết! – flaab

+0

Hoạt động của nó .... Nhiều người cảm ơn –