Soru Nginx alt etki alanlarını localhost'ta nasıl test edilir


Sunucuya yapılandırma yüklemeden önce nginx alt alanlarını test etmek istiyorum. Bunu localhost üzerinde test edebilir miyim? denerim

server {
    listen       80;
    server_name  localhost;

    location / {
        proxy_pass http://localhost:8080;
    }
}

server {
    listen       80;
    server_name  sub.localhost;

    location / {
        proxy_pass http://localhost:8080/sub;
    }
}

Ve işe yaramıyor. Çalıştırmak için ana dosyamı değiştirir miyim? Ayrıca, siteyi sunucuya yükledikten sonra DNS kayıtlarını değiştirip alt.mydomain.com'u eklemeliyim?


18
2018-04-10 19:34


Menşei




Cevaplar:


Evet, hosts dosyanıza 'sub.localhost 127.0.0.1' ekleyin. Bu alt bir şekilde çözülmeli. Bu işe yaramalı.

Sonra ağa gitmeye hazır olduğunuzda, evet, subdomain alt için bir ya da cname kaydı ekleyin.

Proxy_pass kullandığımda, proxy.conf dosyasını nginx'ten ekliyorum. http://wiki.nginx.org/HttpProxyModule


19
2018-05-02 07:54





Herkese açık web sunucunuzun kendi alan adıyla, DNS yapılandırmanızda bir CNAME kaydı kullanarak bir Canonical adı eklemeniz yeterlidir:

CNAME    *    example.com.

Bu tamamlandıktan sonra nginx ayarınızı yapın

server_name  *.example.com example.com;

Yerel kurulumunuzda, nginx için aynı konfigürasyonu koruyabilirsiniz, ancak yerel bir DNS ayarınız yoksa, / etc / hosts dosyanızı düzenlemeniz ve her bir alt alanı manuel olarak eklemeniz gerekecektir. joker karakterler / etc / hosts dosyasında çalışmaz.

127.0.0.1  abc.example.com def.example.com ghi.example.com

Genellikle, yerel alan adlarınız için ad alanı olarak .local kullanılması önerilir.


5
2017-11-19 04:44





Linux tabanlı işletim sisteminde sadece sudo  /etc/hosts dosya ve değişiklik 127.0.0.1 localhost için 127.0.0.1 *.localhost.

Yani /etc/nginx/sites-enabled/<environment>/<your_project_name> Düzenle server_name anahtar olarak <subdomain>.localhost.

Nginx ve ağ hizmetini yeniden yükle.

$ sudo service nginx reload
$ sudo service networking reload

Ve sonra dene http://<subdomain>.localhost url barında.

Benim için çalışıyor.

GÜNCELLEŞTİRME

Benim düşünceme göre, daha iyi bir çözüm, yalnızca alt alanın mevcut olmaması durumunda yanıt veren bir sanal sunucu oluşturmaktır. /etc/nginx/sites-enabled/development/default, varsayılan sunucu olarak (varsayılan olarak sadece bir sunucuyu tanımlayabileceğinizi unutmayın).

server {
  listen 80 default_server;
  root /var/www/html/errors/404;
  server_name *.localhost *.<host-name>;

  location / {
    index subdomain.html;
  }

}

Emin olun nginx.conf (genellikle /etc/nginx/nginx.conf) içerir include /etc/nginx/sites-enabled/**/*; bu sanal sunucuya çalışmak. Değilse, koyup çalıştır $ sudo service nginx reload.

Bu durumda gerekli değildir *.localhost içinde /etc/hosts, ama sadece localhost.


1
2017-12-04 05:31