Tôi có một phiên bản chạy nginx phục vụ một số trang web. Đầu tiên là thông điệp trạng thái trên địa chỉ IP của máy chủ. Thứ hai là bảng điều khiển dành cho quản trị viên trên admin.domain.com
. Những công việc tuyệt vời. Bây giờ tôi muốn tất cả các yêu cầu miền khác đi đến một đơn index.php
- Tôi có vô số tên miền và tên miền phụ và không thể liệt kê tất cả chúng trong cấu hình nginx.nginx server_name wildcard hoặc bắt tất cả
Cho đến giờ tôi đã thử đặt server_name
thành *
nhưng không thành công như một ký tự đại diện không hợp lệ. *.*
hoạt động cho đến khi tôi thêm các khối máy chủ khác, sau đó tôi đoán nó sẽ xung đột với chúng.
Có cách nào để chạy chặn máy chủ lưu trữ tất cả trong nginx sau khi các trang web khác đã được xác định không?
N.B. Tôi không phải là một spammer, đây là những trang web chính hãng với nội dung hữu ích, chúng chỉ được hỗ trợ bởi cùng một CMS từ một cơ sở dữ liệu!
Làm việc hoàn hảo - cảm ơn rất nhiều. Tôi không thể sử dụng 'server_name _;' cho trang trạng thái trên địa chỉ IP, tôi đã phải chỉ định 'server_name x.x.x.x' nhưng điều đó không sao! – Tak
Thêm 'default_server' dường như không hoạt động trên nginx 1.4.6 hiện đang là phiên bản mới nhất trên Ubuntu 14.04 ... Khi tôi thêm nó, lệnh' configtest' trả về lỗi và khởi động lại máy chủ không hoạt động hoặc. Tôi đã thử cấu hình chính xác trên máy chủ của tôi với Debian jessie, trong đó có nginx 1.6.2, và nó hoạt động hoàn hảo. Vì vậy, hãy thử một phiên bản khác nếu bạn đang ở trên 1.4.6 ... – Nicomak
Lưu ý phụ cho HTTPS: chỉ thị '' 'default_server''' cũng đặt máy chủ sẽ xử lý bắt tay SSL cho các yêu cầu trên cổng đó. Vì vậy, nếu bạn muốn khối máy chủ A xử lý SSL, nhưng máy chủ B đóng vai trò là catchall cho HTTPS, giải pháp là đặt '' 'server_name ~^(. +) $' '' Trên máy chủ B. – Luke