Gán nhiều địa chỉ IP cho localhost OS X 10.6


9

Tôi đang cố gắng lưu trữ nhiều trang web cục bộ khi bật HTTPS, nhưng để thực hiện điều này, tôi cần phải định cấu hình máy cục bộ của mình để sử dụng nhiều địa chỉ IP cho localhost (tôi tin). Có cách nào để có nhiều địa chỉ IP giải quyết cục bộ cùng một lúc không?

Tôi đang sử dụng OS X 10.6 (phiên bản tiêu chuẩn - không phải máy chủ) và thiết lập máy chủ MAMP.

Cảm ơn!

Câu trả lời:


3

Bạn không cần nhiều ip để lưu trữ nhiều trang web trên một máy chủ web. Bạn cần sử dụng "Máy chủ ảo" (với https nếu bạn cũng cần nó). Ở đây có hướng dẫn cho máy chủ ảo trên MAMP http://sawmac.com/mamp/virtual/


Để lưu trữ nhiều trang web có bật HTTPS, tôi tin rằng mỗi trang cần một địa chỉ IP riêng. Xem: stackoverflow.com/questions/11217538/
Mạnh

@ user1086746 Apache hỗ trợ Chỉ định tên máy chủ TLS, cũng như tất cả các trình duyệt máy khách chính trên .. khá nhiều hệ điều hành không phải Windows XP. Câu trả lời bạn nên có trong câu hỏi được liên kết của bạn là đặt NameVirtualHost *:443.
Shane Madden

@Shane vẫn không hoạt động khi xử lý nhiều trang web bằng HTTPS trên cùng một địa chỉ IP. Tôi đã đăng những gì kết thúc làm việc cho tôi.
dùng1086746

@ user1086746 Nó chắc chắn hoạt động; Tôi đoán bạn NameVirtualHostkhông khớp với các <VirtualHost>khối của mình , nếu bạn liên kết cụ thể với 127.0.0.1. Không có vấn đề gì trong trường hợp này vì bạn đã tìm thấy một giải pháp hiệu quả, nhưng NoNoKhông đúng - bạn không cần thêm IP.
Shane Madden

Chà, tôi muốn làm việc này một cách 'chính xác' vì thiết lập các địa chỉ IP đó là một bước bổ sung. Tôi có 2 NameVirtualhost như: NameVirtualHost *:80 NameVirtualHost *:443 và đã thử sử dụng vhost như: <VirtualHost _default_:443><VirtualHost 127.0.0.1:443>, nhưng sẽ không cung cấp kết nối HTTPS sau vhost được liệt kê đầu tiên. Tôi có thể cung cấp các tệp ssl.conf và vhost.conf đầy đủ nếu bạn quan tâm!
dùng1086746

22

Để bí danh localhost, bạn có thể sử dụng lệnh đầu cuối này để tạo 'loopback':

ifconfig lo0 alias 127.0.0.2

Với thiết lập bí danh localhost, bạn có thể tạo nhiều máy chủ ảo HTTPS:

<VirtualHost 127.0.0.1:443> ...... </VirtualHost>
<VirtualHost 127.0.0.2:443> ...... </VirtualHost>

Bạn cũng có thể khởi tạo các máy chủ này khi khởi động, nếu muốn, thông qua cron gốc:

sudo crontab -e
@reboot ifconfig lo0 alias 127.0.0.2

Hy vọng rằng điều này sẽ giúp bất cứ ai gặp phải những vấn đề tương tự tôi đã làm!


Sử dụng echo PASSWORDlà một ý tưởng khủng khiếp . Một sự thay thế thô thiển sẽ là đặt một cái gì đó vào cron gốc sudo crontab -e@reboot ifconfig lo0 alias 127.0.0.2. Chắc chắn có một giải pháp thanh lịch hơn, nhưng bất cứ điều gì liên quan đến mật khẩu của bạn trong văn bản đơn giản là không thể chấp nhận được.
chmac

1
Wow, thật là vui! Tôi sử dụng điều này để chuyển tiếp cổng ssh . Điều này cho phép chuyển tiếp cùng một cổng nhiều lần bằng cách nghe trên các địa chỉ IP cục bộ khác nhau. Ví dụ ssh -L 127.0.0.2:443 foo:443 -L 127.0.0.3:443 beta.foo:443 user@host. Sau đó, bạn có thể xác định tên máy chủ cho các địa chỉ IP cục bộ này trong /etc/hoststệp của mình nếu cần. Hóa ra khá hữu ích cho việc phát triển web và thử nghiệm / từ xa, đặc biệt nếu bạn không thể sử dụng các cổng tùy chỉnh cho các ứng dụng của mình.
djule5

2

Bạn không bao giờ cần thêm địa chỉ IP bổ sung vào máy chủ cục bộ trên Linux hoặc Windows. Họ sẽ trả lời theo mặc định, không có cấu hình bổ sung, cho tất cả các địa chỉ IP từ 127.0.0.0/8:

$ ping 127.254.0.100
PING 127.254.0.100 (127.254.0.100) 56(84) bytes of data.
64 bytes from 127.254.0.100: icmp_seq=1 ttl=64 time=0.026 ms

Vì vậy, chỉ cần làm cho ứng dụng của bạn nghe trên bất kỳ IP nào trong phạm vi 127.0.0.0/8 và bạn sẽ ổn.

Thí dụ:

Một bảng điều khiển:

$ nc -vvl 127.0.34.2 9022
Connection from 127.0.0.1 port 9022 [tcp/*] accepted
Hello

Bảng điều khiển khác:

$ echo Hello | nc -vv 127.0.34.1 9022
nc: connect to 127.0.34.1 port 9022 (tcp) failed: Connection refused
$ echo Hello | nc -vv 127.0.34.2 9022
Connection to 127.0.34.2 9022 port [tcp/*] succeeded!

Là một commenter lưu ý, đó cần thiết để thêm IP vào giao diện localhost rõ ràng trên hệ điều hành MacOS / Darwin.


Tôi dường như không thể nghe mà không có bí danh trên giao diện loopback. Cố gắng nc -vvl 127.0.34.2 9022trả lại nc: Can't assign requested address. Với bí danh được định nghĩa với ifconfig lo0 alias 127.0.34.2, nó hoạt động. Bất cứ ý tưởng tại sao đó là? Chạy trên OSX Yosemite.
djule5

1
Trong Mac, chỉ 127.0.0.1 được ánh xạ tới thiết bị lo0 (loopback). Bạn cần thêm thủ công bí danh vào thiết bị loopback để làm cho nó hoạt động. Nhưng trong Linux, tất cả 127.0.0. * Được ánh xạ tới thiết bị loopback.
Sriram

1
Đối với Mac: sudo ifconfig lo0 bí danh 127.0.0.2 trở lên (v.v., phải được thực hiện riêng cho từng địa chỉ)
lilalinux
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.