PHP uygulamaları için özel olarak (şimdilik) WordPress için bir 'test' platformu yapıyorum. PHP'nin farklı sürümlerinde farklı bağlantı noktalarına hizmet vermek için PHPFarm kullanıyorum. Nginx'i ön tarafta kullanarak çalışıyorum. (https://github.com/richardtape/testit ana repo'dur)nginx try_files, proxy_pass ve upstream
Şu anda karşı karşıya kaldığım büyük sorun, WordPress'in "güzel permalinks" ini çalışmaktır. Standart bir nginx kurulumunda, bu
location/{
index index.php index.html index.htm;
try_files $uri $uri/ /index.php?$args;
}
gibi bir şey sadece bir vaka Ama sırayla ana makineden güzel URL'ler sahip olabilmek için, ve bir kod tabanı olması için, ben boyunca bir şey kullanıyorum Aşağıdaki satırlar:
server {
listen 80;
index index.php index.html index.htm;
server_name 52.spaces.dev;
location/{
proxy_pass http://phpfarm_52;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
root /var/www;
}
upstream phpfarm_52{
server phpfarm:8052;
}
Bu, olduğu gibi çalışır. (PHP 5.3, 5.4, 5.5, 5.6 ve 7 için buna benzer 5 tane daha kural vardır.) Ana sayfa, ana makineden farklı sunucu_adılarının her birine yüklenir (ve PHP versiyonunu her birinden çıkarırsanız, farklı bir PHP sürümü aldığınızı göreceksiniz).
Ancak, ben bir 'iç' url (veya http://52.spaces.dev/about/ yani olmayan kök) geçmek ikinci, ben yönlendirme döngüsü olsun
location/{
try_files $uri $uri/ /index.php?$args
}
location ~ \.php$ {
proxy_pass http://phpfarm_52;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
benzer bir 404. denedim şey olsun , hangisi sadece 301 yönlendirmeleri bir dizi ve sayfa asla yükler veya takıldım böyle
nginx_1 | 2016/04/08 20:31:29 [error] 5#5: *4 rewrite or internal redirection cycle while processing "/index.php", client: 192.168.99.1, server: 52.spaces.dev, request: "GET /favicon.ico HTTP/1.1", host: "52.spaces.dev", referrer: "http://52.spaces.dev/"
olarak bir hata oldu denedim birkaç farklı şekilde bağlı. Nginx konfigürasyonunda da oldukça yeni (açık olabilir) bu yüzden tamamen yanlış ve/veya aptalca bir şeyler yapıyorum. Baska öneri?
Örneğin içinden phpfarm: 8052/yaklaşık curl yaptığınızda ne olur? (Temel olarak, ilk proxy_pass'ınız böyle yapar). Ayrıca 404 alırsanız, bunun yerine hangi yönde beklersiniz? – taleodor
Kendisi bir 404 olmalı, ancak anlayabildiğim kadarıyla, 'try_files $ uri $ uri//index.php? $ Args', sonunda index.php'ye (uygun satırlarla) geri dönmesi gerektiği anlamına gelir. 404 (ana sayfanın çalıştığı gerçeğiyle gösterildiği gibi). 'Güzel' permalinklerini devre dışı bırakırsam (ör.her şey index.php ile çalışır) beklendiği gibi çalışır. – RichardTape