Apakah ada cara untuk membagikan arahan konfigurasi di dua server {}
blok nginx ? Saya ingin menghindari duplikasi aturan, karena konten HTTPS dan HTTP situs saya disajikan dengan konfigurasi yang sama persis.
Saat ini, seperti ini:
server {
listen 80;
...
}
server {
listen 443;
ssl on; # etc.
...
}
Dapatkah saya melakukan sesuatu di sepanjang baris:
server {
listen 80, 443;
...
if(port == 443) {
ssl on; #etc
}
}
Untuk mengklarifikasi jawaban yang diterima, Anda perlu menghilangkan
dan Anda hanya perlu yang berikut ini untuk versi nginx setelah 0.8.21
Referensi:
Nginx Documents - Mengkonfigurasi server HTTP / HTTPS tunggal
sumber
Saya tidak tahu cara seperti yang Anda sarankan, tetapi tentu saja ada cara yang mudah dan dapat dipertahankan.
Pindahkan pengaturan server umum ke file terpisah, yaitu "serverFoo.conf" dan kemudian
include
dalamserver {}
blok terpisah seperti:sumber
server_name
berbeda untuk setiap portlisten 443 ssl;
mulai sekarang.listen
baris tidak diinterpretasikan dengan benar, tetapi memindahkannya untuk memisahkannyaserver{}
.Memperluas jawaban yang sudah membantu, berikut adalah contoh yang lebih lengkap:
sumber
Hanya untuk menambah posting Igor / Jauder, jika Anda mendengarkan IP tertentu Anda dapat menggunakan:
sumber