Nginx nie sprawdza bloków serwerów obsługujących witryny

0

Skonfigurowałem nginx i mam problemy z konfiguracją bloków serwerów. Utworzyłem folder dostępny dla stron i włączany dla stron w / etc / nginx. Następnie utworzyłem plik o nazwie subdomeny, którą chcę skonfigurować i umieściłem następującą zawartość:

subdomain.mydomain.com (oczywiście zastąpione moją prawdziwą nazwą domeny)

upstream subdomain.mydomain.com {
        server 127.0.0.1:1234;
        keepalive 30;
}

server {
        listen 80;
        listen [::]:80;

        server_name subdomain.mydomain.com;

        access_log off;
        error_log /var/log/nginx/subdomain.mydomain.com-error.log crit;

        location / {
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header Host $http_host;
                proxy_set_header X-NginX-Proxy true;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
                proxy_pass http://subdomain.mydomain.com;
                proxy_redirect off;
                proxy_http_version 1.1;
                proxy_cache_bypass $http_upgrade;
        }
}

Następnie uruchomiłem następujące polecenia:

ln -s /etc/nginx/sites-available/subdomain.mydomain.com /etc/nginx/sites-enabled/
service nginx restart

Nginx zrestartował się bez problemów, jednak poddomena nie jest osiągalna. Po skopiowaniu wklej powyższą konfigurację bloku serwera do mojego bloku http /etc/nginx/nginx.conf działa zupełnie dobrze.

Moje pytanie:

Dlaczego nie ładuje moich bloków serwera z folderu dostępnego na stronach? Myślę, że jest to preferowany sposób dodawania nowych stron do nginx.

Nginx.conf:

https://ghostbin.com/paste/bfgqz

Kentor
źródło
Czy możesz również opublikować kopię pliku nginx.conf?
Drifter104
@ Drifter104 na pewno dodałem link do konfiguracji w wątku
kentor

Odpowiedzi:

2

Wygląda na to, że konfiguracja nginx twojej dystrybucji /etc/nginx/sides-enableddomyślnie nie odczytuje katalogu; prawdopodobnie postępowałeś zgodnie z instrukcją dotyczącą innej dystrybucji instalacji. Jedynym miejscem, w którym twój nginx szuka plików konfiguracyjnych, jest /etc/nginx/conf.d/, jak wynika z tego wiersza w twoim nginx.conf:

    include /etc/nginx/conf.d/*.conf;

Dlatego należy albo przenieść plik konfiguracyjny do /etc/nginx/conf.d/subdomain.mydomain.com.conf(zwróć uwagę na .confsufiks), albo zmienić główną konfigurację nginx, aby uwzględnić również pliki w folderze obsługującym witryny ( niezalecane , ponieważ menedżer pakietów dystrybucji może nadpisać go podczas przyszłej aktualizacji) .

Mario Vitale
źródło
Najwyraźniej to był powód. Nigdy wcześniej nie widziałem takiego podejścia, dlatego stworzyłem nawet foldery
witryn