Giải quyết wildcard.hostname trong mạng cục bộ?


4

Để phát triển web trên máy chủ cục bộ của tôi ( nginx) Tôi muốn tạo vhost tên miền phụ cho một số dự án, chủ yếu là để thuận tiện và linh hoạt. Ví dụ

server {
    listen       80;
    server_name  project.myHostname;

    root         /that/projects/html/root;
    ....
}

Trong khi về mặt kỹ thuật nghi vấn (?), Nó hoạt động tốt khi thực hiện một yêu cầu http://project.myHostname trên cùng một máy . Nhưng tôi muốn kết thúc với một cấu hình mà tôi có thể truy cập http://project.myHostnametừ bất kỳ thiết bị nào được kết nối trong mạng cục bộ (và chỉ ở đó). Giống như nó hoạt động khi tôi truy cập myHostname(Bởi vì, tôi đoán bộ định tuyến DNS của tôi giải quyết điều đó với ip cục bộ). Nhưng đối với điều khác, tôi nhận được tất cả các loại lỗi la hét không có điều gì như vậy subdomain.hostname.

Giải pháp duy nhất tôi tìm thấy cho đến nay là chỉnh sửa thủ công hoststệp cho mọi thiết bị có thể yêu cầu "địa chỉ" đó. Có một giải pháp thuận tiện hơn?

Tôi nghĩ rằng một vấn đề lớn ở đây có thể là sự hiểu biết kém của tôi về các khái niệm và mối quan hệ giữa tên máy chủ, tên miền và như vậy. Tôi đã vật lộn với điều này trong một thời gian nhưng có một thời gian khó khăn để có được đầu của tôi xung quanh nó.

Câu trả lời:


3

Bạn muốn các tính năng DNS, vì vậy bạn nên sử dụng DNS.

  1. Thiết lập một máy chủ DNS như Bind9 hoặc Không giới hạn - bạn nên sử dụng một máy chủ có khả năng hoạt động như đệ quy và có thẩm quyền cùng một lúc;
  2. Định cấu hình máy tính của bạn để sử dụng máy chủ đó cho DNS, thay vì bộ định tuyến của bạn;
  3. Để thực hiện, hãy đặt máy chủ DNS của bạn sử dụng các địa chỉ máy chủ DNS thông thường của bạn làm "chuyển tiếp" (để sử dụng bộ đệm của họ).

Đó là phần "chuẩn bị".


Bây giờ hãy tạo một vùng mới có tên "myhostname". Nó chủ yếu giống như lưu trữ tên miền của riêng bạn example.com, vì vậy bạn có thể làm theo các hướng dẫn khác nhau hiện có.

(Một vùng tương ứng với một khu vực có thẩm quyền - thường là TLD hoặc tên miền cấp đầu tiên "thông thường", nhưng trong một số trường hợp, một tên miền phụ cũng có thể là vùng riêng của nó.)

Nhiều người sử dụng dnsmasq cho mục đích này, nhưng tôi không biết liệu nó có hỗ trợ ký tự đại diện không. Cộng với cấu hình của nó thực sự tối nghĩa, vì vậy tôi sẽ bỏ qua nó.

Trong Không giới hạn (chủ yếu là một người truy cập với các tính năng lưu trữ có thẩm quyền rất hạn chế), nó trông như thế này:

server:
    (other settings...)
    local-zone: "myHostname." static
    local-data: "myHostname. A 192.168.1.234"
    local-data: "*.myHostname. A 192.168.1.234"
    (other settings...)

forward-zone:
    name: "."
    forward-addr: 8.8.8.8
    forward-addr: 8.8.4.4

Điều này trỏ cả myHostname<anything>.myHostnameđến địa chỉ IP nhất định.

Trong Bind9 (là một máy chủ có thẩm quyền đầy đủ tính năng), nó phức tạp hơn một chút - bạn cần tạo một "tệp vùng" riêng biệt:

; /etc/named.conf

options {
    (other settings...)
    forwarders { 8.8.8.8; 8.8.4.4; };
};

zone "myHostname" {
    type master;
    file "/var/named/myHostname.zone";
};

; /var/named/myHostname.zone (example in short form, with $ORIGIN)

$ORIGIN myHostname.
$TTL 1h
@  SOA  localhost. whatever. ( 1 4h 1h 7d 1h )
@  A    192.168.1.234
*  A    192.168.1.234

; /var/named/myHostname.zone (same example but in full form)

$TTL 1h
myHostname.    SOA  localhost. whatever. ( 1 4h 1h 7d 1h )
myHostname.    A    192.168.1.234
*.myHostname.  A    192.168.1.234

( $ORIGINđược tự động gắn vào tất cả các tên nếu chúng chưa kết thúc bằng dấu chấm.)


phew, có vẻ như tôi đang trong quá trình học tập nhỏ :-) Cảm ơn các hướng dẫn, tôi sẽ xem lại bài đăng này ngay khi tôi đi xung quanh để làm điều này, vẫn phải giải quyết một số ưu tiên trước.
Arsylum

1

Có hai vấn đề ở đây.

1) Giải quyết tên thành IP.

Câu trả lời của Grawity về điều này đã chết. Đối với điều này, bạn có thể chỉnh sửa tập tin máy chủ trên tất cả các máy tính (có thể thực hiện được cho một trong hai hệ thống, nhưng không phải cho số lượng lớn hệ thống).

hoặc bạn sử dụng một hệ thống được mô tả cho điều đó. Hệ thống này là DNS.

DNS không hoàn toàn tầm thường, nhưng có nhiều hướng dẫn đơn giản về cách thiết lập nó cho công việc hạn chế. Sau khi thực hiện xong, bạn chọn IP mà tên máy chủ sẽ giải quyết bằng cách chỉnh sửa một tệp.

1B)

Tôi nghĩ rằng một vấn đề lớn ở đây có thể là sự hiểu biết kém của tôi về các khái niệm và mối quan hệ giữa tên máy chủ, tên miền và như vậy. Tôi đã vật lộn với điều này trong một thời gian nhưng có một thời gian khó khăn để có được đầu của tôi xung quanh nó.

Đây có thể là một điểm tốt để bắt đầu sau đó. Nếu không có một nền tảng tốt, bạn đang xây dựng trên cát lún. Một câu trả lời đầy đủ về điều đó có thể sẽ không phù hợp trong một bài viết. Vì vậy, tìm nơi khác cho một câu trả lời đầy đủ.


2) HTTP.

HTTP là một giao thức lạ. Hầu như tất cả các giao thức trên internet đều hoạt động trên TCP / IP. Các datagram được gửi qua TCP hoặc UDP đến IP.

Mặt khác, HTTP cũng bao gồm tên máy chủ trong các yêu cầu của nó. Đây là những gì cho phép bạn chạy một số trang web khác nhau từ một kết hợp cổng IP. Thông thường điều này rất thuận tiện, nhưng nó yêu cầu bạn phải gửi (và giải quyết) đúng máy chủ lưu trữ. Điều đó có nghĩa là trước tiên bạn muốn google xung quanh và đọc một đoạn mồi trên DNS.

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.