18 Aralık 2013 Çarşamba

FastCGI, Nginx Yapılandırması

Bu yapılandırmayı neden kullanmam gerekti öncelikle ondan bahsedeyim. 

Bu yıl yapmaya çalıştığım işlerden biri de Haproxy için web arayüzü yazmak. Stajda Flask kullanarak yazdığım 'Hapra' uygulamasını temel alacağı ve o uygulamanın çıktıları arayüzde gerektiği için  Hapra'nın sürekli çalışır durumda olması gerekiyordu.

Sunucuya nginx'i kurduktan sonra Flask için bu işin FastCGI ile yapılabileceğini öğrendim. 

Nginx ile WSGI uygulamasını kullanmak için önce bir FastCGI sunucu gerekiyor. En çok kullanılanı Flup  olduğu için onu kurdum.
#apt-get install python-flup

Adımlar sırayla şöyle:
1. Önce Flask ile yazılan uygulamamızı /var/www altına taşımalıyız.
2. Uygulamanın içine a.fcgi dosyası oluşturup aşağıdakileri yazmalıyız.
    
#!/usr/bin/python 
from flup.server.fcgi import WSGIServer 
from yourapplication import app 

if __name__ == '__main__': 
    WSGIServer(application, bindAddress='/path/to/fcgi.sock').run()
  
*Burada  'yourapplication' ve 'app' kısmını kendi uygulamanıza göre değiştirmelisiniz.

3. a.fcgi'ye çalışma izni vermeliyiz.

#chmod +x a.fcgi

#chown -R www-data:www-data klasoradi

4. #vim /etc/nginx/sites-enabled/default

5. Bu yapılandırma dosyasında 'location/' satırını yorum satırı yapıp aşağıdaki satırları eklemeliyiz.

location / { try_files $uri @yourapplication; } 
location @yourapplication { 
    include fastcgi_params; 
    fastcgi_param PATH_INFO $fastcgi_script_name;
    fastcgi_param SCRIPT_NAME ""; 
    fastcgi_pass unix:/tmp/yourapplication-fcgi.sock; }

Son satırı değiştirip a.fcgi'de belirttiğiniz yolu yazmalısınız.

6. service nginx restart
7. su www-data

Yapılandırmadaki değişiklikten sonra nginx'i yeniden başlattık, www-data kullanıcısı olduk.

8. screen
a.fcgi arkada hep çalışır durumda olmalı. Bu yüzden screen komutunu kullandık.

9. /var/www/yourapplication/a.fcgi
Son olarak .fcgi dosyasını çalıştırdığımızda uygulamamız sürekli çalışır durumda olacaktır.

Görüşmek üzere..



 


Hiç yorum yok:

Yorum Gönder