Loại trừ các tên miền cụ thể khỏi máy chủ Apache2 trong khi sử dụng bí danh bắt tất cả * (ký tự đại diện)


10

Tôi có một ứng dụng web cần hỗ trợ các miền tùy chỉnh, liên quan đến việc tôi đã thiết lập máy chủ ảo dựa trên tên sau:

<VirtualHost *:80>
    ServerName example.com
    ServerAlias * *.example.com www.example.com example.com
    RailsEnv production
    RackEnv production
    DocumentRoot /srv/www/example/current/public
    <Directory /srv/www/example/current/public>
             AllowOverride all
             Options -MultiViews FollowSymLinks
    </Directory>
    ErrorLog /srv/www/example/log/error.log
    TransferLog /srv/www/example/log/access.log
</VirtualHost>

Lưu ý * là bí danh máy chủ? bắt tất cả các tên miền trên máy chủ đó. Tuy nhiên, tôi có các trang web khác trên máy chủ này mà tôi muốn loại khỏi danh sách này. Sẽ kinh tế hơn đối với tôi khi có một danh sách các tên miền bị loại trừ hơn là đặt thủ công mọi tên miền mà người dùng có thể đăng ký tại dịch vụ này dưới dạng máy chủ ...

Có lẽ đây không phải là cách tốt nhất, nhưng tôi đang tìm kiếm sự giúp đỡ, theo cách tốt nhất (tương đối đơn giản) để thiết lập một ứng dụng web có thể bắt bất kỳ tên miền nào, trong khi cho phép các tên miền cụ thể khác được chuyển đến các ứng dụng khác nhau .

Câu trả lời:


12

Apache tìm kiếm một trận đấu theo thứ tự các miền được xác định. Nếu tôi hiểu vấn đề của bạn một cách chính xác thì nó có thể được giải quyết bằng cách xác định máy chủ của bạn bị loại trừ trước khi bắt tất cả máy chủ.

<VirtualHost *:80>
    ServerName excluded.example.com
    ServerAlias  something.example.com ...
    ...
</VirtualHost>
<VirtualHost *:80>
    ServerName example.com
    ServerAlias * *.example.com www.example.com example.com
    RailsEnv production
    ...
</VirtualHost>

1
Vâng, bạn đã đúng, nhưng tôi bối rối về cách thực hiện việc này trên ngăn xếp Ubuntu 10.4 mặc định, trong đó toàn bộ shenanigans được quản lý bằng cách có một thư mục có sẵn trang web và có sẵn trang web và mỗi định nghĩa máy chủ ảo tồn tại trong riêng tập tin ... làm thế nào để tôi kiểm soát thứ tự trong trường hợp đó?
Victor S

Các tập tin được tải theo thứ tự chữ cái (thứ tự sắp xếp mặc định cho ls).
dùng9517

1
đối với một định nghĩa trang web cần phải đến trước, hãy đặt tên cho nó giống như 000-excluded.example.com.conftrong thư mục có sẵn của trang web.
Brian Minton

Tôi đã tìm cách để làm chính xác điều tương tự, và điều này không làm việc cho tôi. Các excluded.example.com VirtualHost vốn đã "ServerName excluded.example.com \ n Redirect / example.com/excluded " gây ra tất cả các yêu cầu đến VirtualHost tổng quát hơn để chuyển hướng (mà chắc chắn đi theo cụ VirtualHost trong config).
quuxman
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.