bagaimana cara mengkonfigurasi Nginx membatasi ke ribuan server_name yang berbeda tanpa membuat ribuan file konfigurasi eksternal atau menulis baris server_name yang sangat panjang?
Memang, saya ingin Nginx menjadi reverse-proxy hanya untuk server1.com, server2.com, dll ...
Solusi terbaik bagi saya adalah memiliki file konfigurasi eksternal tunggal yang berisi nama_data terbatas saya: server1.com, server2.com, dll ...
Apa itu mungkin ?
Ok, terima kasih atas jawaban Anda, itu berfungsi tanpa reg. ekspresi. Hanya daftar nama server besar seperti yang dijelaskan oleh kolbijack. Terima kasih.
Jawaban:
Anda dapat menempatkan direktif nama_dalam file dengan sendirinya dan kemudian hanya memasukkannya dari blok server Anda:
File server_names hanya perlu server_name di bagian atas dan; di bagian bawah menjadi arahan yang valid.
sumber
ServerAlias
arahan dan hingga 16 jutaDeny from
arahan) di Apache. 5.000 domain menghasilkan penundaan yang terukur tetapi kecil. Ketika menambah jumlahnya, saya menemukan penundaan mulai terlihat sekitar 50.000. Dengan Apache (dan mungkin juga dengan nginx), daftar disimpan dalam RAM yang berarti bahwa dengan set terbesar yang saya coba, saya hanya bisa memulai satu proses anak dalam RAM yang tersedia.server_name
arahan dan tanggapRequest rate: 36900.6 req/s (0.0 ms/req)
Request rate: 34716.8 req/s (0.0 ms/req)
The
server_name
deklarasi di Andaserver {}
blok dapat menjadi ekspresi reguler, ini harus memungkinkan Anda untuk mencocokkan SERVER_NAME s dalam mengatur pola.Informasi lebih lanjut tentang ini dapat dilihat di sini: http://nginx.org/en/docs/http/server_names.html#regex_names
sumber