Soru Nginx yapılandırma dosyasının adı ve konumu nedir (htaccess karşılığı)?


Çok var öğreticiler Apache'nin .htaccess dosyasını taklit etmek için Nginx rewrite kurallarının nasıl yazılacağı konusunda emin değilim, ancak bu sözde Nginx config dosyasının isminin veya konumunun ne olduğunu bildiğimi söyleyemem. Özellikle, sunucu yolunu ve PHP yönergelerini yazmanıza izin veren Nginx yapılandırma dosyasını arıyorum. Ben PHP framework olarak Ubuntu 12 linux ve Codeigniter kullanıyorum.

Şimdiye kadar bildiğim şey:

  1. Bu dosya: /etc/nginx/nginx.conf cazip ismi rağmen sunucu yönergeleri için yer değil.
  2. Bu dosya: /etc/nginx/sites-available/default İhtiyacım olan şey gibi görünüyor (uygulamanıza özel php hataları oluşturabiliyorum) ancak Codeigniter'e özgü yol yönlendirmesini doğru alamıyorum. Her şeyden önce, bu herkesin yaptığı "config" dosyası / .htaccess eşdeğer mi?

28
2017-07-31 02:19


Menşei


Senin sorunun PHP ile değil dil (PHP'de programlama), PHP ile yapılandırma tamamen geçerli yakın oy açıklayan belirli bir sunucu üzerinde. Son derece öznel ve yanlı göründüğünden, yazının ikinci kısmı hakkında yorum yapamam. - nickb
Nginx yapılandırmasının nerede bulunduğunu bulabilirsiniz. nginx -V el kitabında bulabilirsiniz man nginx. -V seçeneği "-V nginx sürümünü, derleyici sürümünü yazdırın ve komut dosyası parametrelerini yapılandırın." Eğer nginx senin yolunda değil, kullan which nginx nginx'in tam yolunu döndürür $(which nginx) -V - bucabay


Cevaplar:


PHP'yi aşağıdaki yapılandırmada geliştirme sunucumda nginx ile kullanıyorum:

  1. içinde /etc/nginx/nginx.conf Ekledim: include /etc/nginx/sites-enabled/*; sondan önce }.

  2. site yapılandırmalarınızı oluşturmak için aşağıdaki komutları çalıştırın:

    mkdir /etc/nginx/sites-available/
    mkdir /etc/nginx/sites-enabled/
    cp /etc/nginx/conf.d/default.conf /etc/nginx/sites-available/<site>
    
  3. site konfigürasyonunu, bazı olası konfigürasyonları (kurulumumda bahsettiğim şey) düzenleyin: http://kbeezie.com/view/nginx-configuration-examples/

  4. etkinleştirmek için mevcut siteye bağlantı verin

    ln -s /etc/nginx/sites-available/<site> /etc/nginx/sites-enabled/<site>
    
  5. Hemen hemen her yerde konfigürasyonlardaki dosyaları ekleyebileceğinizi aklınızda bulundurun. Bu, benzer konfigürasyonları bir araya getirmek istediğinizde birden fazla siteyi kolayca oluşturmanızı sağlar.

Evet, .htaccess ile karşılaştırılabilir server{} Nginx'te blok, ama aynı zamanda çok farklı. nginx, ayrıştırma yapılandırması için çok daha hafif bir yaklaşıma sahiptir ve nginx.conf tarafından görüldüğü takdirde, ek yapılandırma için site dizinlerini taramayacaktır.


27
2017-07-31 02:28



- @ Andrew yararlı bilgiler çok teşekkürler!, Varsayılan olarak benim /etc/nginx/nginx.conf dosya zaten var include /etc/nginx/sites-enabled/*; Çok sonunda. Bu 2 dosya sunucumda birbirleriyle konuşuyor gibi görünüyor ve şimdi ben Codeigniter özel konularla uğraşıyorum. Codeigniter kullanıyor musunuz? Üzerinde bir tutamaç olması gereken bir yol funkiness var ... - tim peterson
CodeIgniter'e oldukça benzer (daha ilkel olmasına rağmen) kendi çerçevemi kullanıyorum. Şu anda mod_rewrite regexp kurallarını nginx'in HttpRewrite modülüne dönüştürmeye çalışıyorum. İlk büyük atılımım yanlış yapılandırdığımda 403/404 hataları nginx görüntülerini geçiyordu. rootparametre. İlhama ihtiyacınız varsa Sorularımı kontrol etmek için çekinmeyin. - abestic9
Sorularınızı kontrol etmenin ipucu için teşekkürler. Şimdi daha fazla anladığımı düşünüyorum, yolda olduğun için teşekkürler ... - tim peterson