Existe-t-il un moyen de partager les directives de configuration sur deux server {}
blocs nginx ? J'aimerais éviter de dupliquer les règles, car les contenus HTTPS et HTTP de mon site sont servis avec exactement la même configuration.
Actuellement, c'est comme ça:
server {
listen 80;
...
}
server {
listen 443;
ssl on; # etc.
...
}
Puis-je faire quelque chose dans le sens de:
server {
listen 80, 443;
...
if(port == 443) {
ssl on; #etc
}
}
Pour clarifier la réponse acceptée, vous devez omettre
et vous avez juste besoin des éléments suivants pour la version de nginx après la version 0.8.21
Référence:
Nginx Docs - Configuration d'un seul serveur HTTP / HTTPS
la source
Je ne connais pas un moyen comme vous le suggérez, mais il existe certainement un moyen facile et facile à maintenir.
Déplacez les paramètres de serveur communs dans un fichier séparé, c’est-à-dire "serverFoo.conf", puis
include
dans desserver {}
blocs séparés , comme suit :la source
server_name
listen 443 ssl;
dès maintenant un.listen
lignes ne sont pas interprétées correctement, mais le fait de les déplacer séparément leserver{}
corrige.En développant les réponses déjà utiles, voici un exemple plus complet:
la source
Juste pour ajouter au message d'Igor / Jauder, si vous écoutez une adresse IP spécifique, vous pouvez utiliser:
la source