Nginx config dosyasının adı ve konumu nedir (htaccess eşdeğeri)?


30

Apache'nin .htaccess dosyasını taklit etmek için Nginx yeniden yazma kurallarının nasıl yazılacağı hakkında birçok öğretici bilgi var, ancak bu sözde Nginx yapılandırma dosyasının isminin veya konumunun gerçekte ne olduğunu bildiğimden emin değilim. Özellikle sunucu yolunu ve PHP yönergelerini yazmanıza izin veren Nginx config dosyasını arıyorum. PHP altyapım olarak Ubuntu 12 linux ve Codeigniter kullanıyorum.

İşte şimdiye dek bildiklerim:

  1. Bu dosya: /etc/nginx/nginx.confBaştan çıkarıcı adına rağmen görünüşe göre sunucu direktiflerinin yeri değil.
  2. Bu dosya: /etc/nginx/sites-available/defaultneye ihtiyacım var gibi gözüküyor (uygulamama özel php hataları üretebiliyorum) ancak Codeigniter'e özgü yol yönlendirmesini doğru şekilde alamıyorum. Her şeyden önce, bu herkesin bahsettiği "config" dosyası / .htaccess eşdeğeri midir?

Sorununuz PHP ile değil dil (PHP yani programlama), PHP beraber konfigürasyonda tamamen geçerli yakın oy açıklayan belirli bir sunucuda. Son derece öznel ve önyargılı göründüğü için gönderinizin son kısmı hakkında yorum yapamam.
takma

1
Kullanım nginx -Vkılavuzunda bulabileceğiniz nginx config dosyasının bulunduğu yeri bulabilirsiniz man nginx. Bu -Vseçenek "-V nginx sürümünü, derleyici sürümünü yazdır ve script parametrelerini yapılandır." Olarak belgelenmiştir. Eğer nginxyolunuzun, kullanım değil which nginxnginx tam yolunu döndürür$(which nginx) -V
bucabay

Yanıtlar:


28

Geliştirme sunucumda nginx içeren PHP'yi aşağıdaki yapılandırma ile kullanıyorum:

  1. içinde /etc/nginx/nginx.confI ekledi: include /etc/nginx/sites-enabled/*;Geçen ö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 yapılandırmasını ve bazı olası yapılandırmaları düzenleyin (kurulumumda bahsettiğim şey bu): 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. neredeyse her yerde yapılandırmaların içerisine dosya ekleyebileceğinizi unutmayın, bu da benzer yapılandırmaları bir araya getirmek istediğinizde birden fazla site oluşturmayı kolaylaştırır.

Evet, .htaccess server{}nginx içindeki blok ile karşılaştırılabilir, ancak aynı zamanda çok farklı. nginx konfigürasyon ayrıştırma konusunda çok daha hafif bir yaklaşıma sahiptir ve ek konfigürasyon için site dizinlerini taramayacaktır, sadece nginx.conf tarafından görülenleri gider.


- @ Andrew çok sayıda yararlı bilgi sağladı !, varsayılan olarak benim dosyamın en sonunda bu /etc/nginx/nginx.confdosya var include /etc/nginx/sites-enabled/*;. Görünüşe göre bu 2 dosya sunucumda birbirleriyle konuşuyorlar ve şimdi Codeigniter'e özgü konularla ilgileniyorum. Codeigniter kullanıyor musunuz? Başa çıkmam gereken bir yol felaketi var ...
tim peterson

CodeIgniter'a oldukça benzeyen (daha ilkel olsa da) kendi çerçevemi kullanıyorum. Şu anda mod_rewrite regexp kurallarımı nginx'in HttpRewrite modülüne dönüştürmeye çalışıyorum. İlk büyük atılımım, rootparametreyi yanlış yapılandırdığımda nginx ekranlarının 403/404 hatalarını aşmaktı . İlhama ihtiyacınız varsa, Sorularımı incelemek için çekinmeyin.
abestic9

sorularınızı kontrol ipucu için teşekkürler. Şimdi daha fazla anladığımı düşünüyorum, beni yola
koyduğunuz
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.