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..



 


Screen Kullanımı

Merhabalar, bu yazımda sunucuda yapılandırma yaparken kulandığım screen komutundan ve temel kullanımından bahsedeceğim.

Uzak bağlantılarda birden fazla uçbirim açmak için 'screen' komutu kullanılıyor.

Yüklü değilse,

deb paket yöneticisi kullanıyorsanız: #apt-get install screen 
rpm paket yöneticisi kullanıyorsanız: #yum install screen
dedikten sonra komutu kullanabilirsiniz.

screen                                                                                                                        

Bu komutu verdiğimizde aşağıdaki gibi bir ekranla karşılaşacağız.


Bu kısımdan sonra görülen komut satırı yeni açtığınız ekrandır.
Çalışan ekranları görmek için 'screen -ls' ya da 'screen -list' komutlarını kullanabilirsiniz.

Ctrl-a screen'de komut verileceğini belirtir.

Örneğin Ctrl-a-d ekranı arka plana atar. 'screen ls' diyerek ekranın durumunu görürüz.

Bağlanmak istediğimiz ekran için 'screen -r ekran_numarası' komutu kullanılır.

Bazı Kısayollar:

C+a+c (yeni pencere)
C+a+" (pencere listesi)
C+a+d (pencereyi arka plana alma)
C+a+0 (0 numaralı pencereye geçiş yapar)
C+a+A (isim verme)
C+a C+a (açık pencereler arasında sırayla geçiş)
C+a+n ya da space ya da p (sonraki/önceki ekran)
C+a+K ya da exit (ekranı kapatma, exit sormadan kapatır)
Ctrl-a ? (Kısayolları görüntüler)
Ctrl+A [ (Kopyala)
Ctrl+A ] (Yapıştır)

Daha çok parametresi için 'screen --help' ile sizleri başbaşa bırakıyorum.

12 Aralık 2013 Perşembe

INET-TR’13

Bu yıl 18.si düzenlenen Türkiye'de İnternet Konferansı,  9-11 Aralık tarihinde İstanbul Üniversitesi'nde gerçekleşti. Kendime kısa bir tatil ilan ettiğim için, etkinliğe Bolu'dan katıldım. 

Hava şartları ve İstanbul'un trafiği berbattı. Çomü'den katılanlarla Kongre Merkezi'nde buluştum. (+Necdet Yücel, +Ebru Akagunduz, +Esra Altintas+Berk Güreken, +Faruk Uzun, +Feyza Yavuz, +Ayşe Melike Yurtoğlu ve +yeliz taneroğlu )

Sabahki +Ebru Akagunduz ve Tülin İzer'in "Linux Çekirdeğine Nasıl Katkı Verilir?" sunumunu ne yazık ki kaçırdım. Ama buradan benim gibi izleyebilirsiniz :)  

Öğleden sonra +Çağdaş Direk'in "Müzik ve Medya Dünyası için Özgür Yazılımlar" sunumuna katıldım. Sunumda Teknolojik aletler geliştikçe ses kalitesindeki değişimin nasıl olduğundan, yazılımsal ve donanımsal olarak bu kaliteyi nasıl değiştirebileceğimizden, geliştirilen yazılımlardan ve özelliklerinden bahsedildi. Müzikle ilgilendiğimden benim için yararlı geçen bir sunumdu.

Bir de "Toplumsal Olaylar, Sosyal Medya ve Hukuk" paneline katıldım. 
Konuşmacılar: Ebru Baranseli(Moderatör), Başak Purut(Ekşi Sözlük), Hande Kuday,Efkan Bolaç, Gökhan Ahi(Bilgi Üniversitesi).  Toplumsal olaylar sırasında sosyal medya kullanımından, kullanıcıların yasal haklarından bahsedilen panel, soru-cevap şeklinde sona erdi. 

Elazığ'dan kalkıp gelen, twitterdan bildiğim +sümeyye Bazna ile burada tanıştık. Çok da memnun oldum:)

Etkinlikten sonra +Kaan Ozdincer de bize katıldı. Kadıköy'de otobüs saatine kadar bolca muhabbet etme fırsatımız oldu.

Yine çok eğlendiğim, 'iyi ki de gitmişim' dediğim bir etkinlik oldu :)