Ana içeriğe atla

Backend Kurulum Notlarım


  1. Nginx Kurulum ve Site ayaları nasıl yapılır?
  2. Python virtualenv yani sanal ortamlar nasıl oluşturulur?
  3. Flask ile yazılan site gunicorn ile nasıl yayına alınır?
  4. PostgreSql Database'e dışarıdan erişmek için gerekli ayar nasıl yapılır?
  5. Nginx Certbot ile ssl kurulumu
  6. Nginx www http(s) yönlendirmesi

bunlar hakkında öğrenirken yazmış olduğum kurulum notlarını paylaşmak istedim buyrun;




Nginx kurulum nasıl yapılır?


Sistemi güncelleyip nginx 'i kuralım.
sudo apt update
sudo apt install nginx
her şey yolundaysa kontrol edelim
systemctl status nginx

Git ile entegre etme


Github la entegre edeceğimiz için bir ssh keygen oluşturalım.
mail adresini girelim ve diğer sorularda enter deyip geçelim.
Eğer şifre girersek git pull yapacağımız zaman şifreyi girmek zorunda kalacağız, hiç gerek yok.
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
Enter a file in which to save the key (/home/you/.ssh/id_rsa): [Press enter]
Enter passphrase (empty for no passphrase): [Type a passphrase]
Enter same passphrase again: [Type passphrase again]
arka planda ssh-agenti başlatalım
eval "$(ssh-agent -s)"

Oluşturduğumuz keygeni ekleyelim.
ssh-add ~/.ssh/id_rsa

Daha sonra id_rsa.pub içeriğini github da ayarlar kısmında ssh keygen bölümüne ekleyeceğiz.

Python Sanal Ortam Oluşturma


Python ile geliştirme yaptığım için sanal alanımı oluşturuyorum…
sudo apt-get install python3-venv
python3 -m venv myvenv
sanal ortamda shell ekranına erişmek için
source ../myenv/bin/activate
Gerekli kütüphaneleri kurmak için:
pip install -r requirement.txt

requirement.txt güncellemek için
pip freeze > requirement.txt


PostgreSql kurulumu 


postgresql kurulumlarına geçersek

#postgres install
sudo apt install postgresql postgresql-contrib 
#postgres kullanıcısına geçer. .conf dosyalarını düzenlemek için lazım olacak.
sudo -i -u postgres 


#default şifreyi değiştirmek için
sudo -u postgres psql 
\password

Postgresql'i dışardan erişime açmak


postgresql.conf dosyasında localhost’u 0.0.0.0 veya * yapıyoruz.
listen_addresses = '*'
ssl hatası verdiği için son olarak da
pg_hba.conf dosyasında son satıra bunu ekliyoruz.
# TYPE DATABASE USER CIDR-ADDRESS  METHOD
host  all  all 0.0.0.0/0 md5
yeniden başlatalım
service postgresql restart

ve artık postgresql dışardan erişebilir durumda…

Flask için Reverse Proxy nginx ayarları


Nginx de site configrasyonu yaparken şablondan yararlanabiliriz.
default olan şablonu kopyalıyoruz.
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/example.com

gerekli düzenlemeleri yaptıktan sonra sites-available den sites-enabled’a kopyalayabiliriz.
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

sites-enabled’la bulunan default ayarı siliyoruz ki yaptığımız yeni ayar aktif olsun.
reverse proxy kullanacaksak aşağıdaki config dosyasını kullanabiliriz.
server {
location / {
    proxy_pass http://localhost:5000;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
}
#site ssl onayı almak için gerekiyor
location ~ /.well-known {
    root /var/www/cert;
}

}
ngnix i güncelleyip bir hata yapıp yapmadığımızı görebiliriz.
sudo /etc/init.d/nginx restart

Ayarlarda bir hata yoksa gunicorn ile sitemizi yayın hayatına sokabiliriz.
sanal ortamda shell ekranı açtıktan sonra bu komutu girmemiz gerekiyor.
gunicorn da aynı şekilde sanal ortamda kurulması gerek.
gunicorn server:app -b 0.0.0.0:5000 --reload --timeout 3600 --daemon --error-logfile static/log.txt

herhangi bir zaman aşımı probleminde sitemizin çökmemesi için timeout ve gunicorn u arka planda çalışması için --daemon ekliyoruz. isterseniz hataları da loglayabilirsiniz.

Ssl Sertifikası Kurulumu


yeni repo adresi ekleyelim:
sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository universe
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
eklediğimiz certbotu kuralım:
sudo apt-get install certbot python3-certbot-nginx

yeni bir ssl serfikası oluşturalım:
sudo certbot --nginx -d your_domain -d www.your_domain

eğer ssl sertifikası ayarlarını nginx’e otomatik kurulum yapılmasını istiyorsanız:
sudo certbot --nginx

manuel kurulum için:
sudo certbot certonly --nginx

son olarak yaptığımız config dosyası aşağıdaki gibi olacaktır.
server {
location / {
    proxy_pass http://localhost:5000;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
}

location ~ /.well-known {
    root /var/www/cert;
}
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
    if ($host ~* ^www\.){
        return 301 $scheme://example.com$request_uri;
    }

}
server {
    if ($host = example.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot
    if ($host ~* ^www\.){
        return 301 $scheme://example.com$request_uri;
    }
#     if ($host = www.example.com){
#       return 301 $scheme://example.com$request_uri;
#    }

    server_name example.com;
    listen 80;
    return 404; # managed by Certbot

}
http -> https ve www-non www yönlendirmesi de yapmış olduk böylece adresler aşağıdaki gibi yönlendirmesi oluştu.
https://www.example.com -> https://example.com
http://www.example.com -> https://example.com
http://example.com -> https://example.com

postgresql yararlandığım kaynaklar



nginx yararlandığım kaynaklar


Yorumlar

Popüler Bloglar

Link tl reklam geçme

Link.Tl reklamı beklemeden geçmek! Link.tl de reklamlarla uğraşmadan javascript kod ile reklamı beklemeden bypass edip geçebilirsiniz. javascript : ciftklik = "http://link.tl/i" ; + document .location.pathname; window .location.href = ciftklik; Kodu Kopyala Tek yapmanız gereken yukarıdaki kodu yer imlerine eklemek. Daha sonra geçmek istediğiniz reklam da çalıştırmak. Link Geçme sitesi   online Videolu anlatım  Etiket bulutu: link tl atlama, link tl çevirici, link tl çeviri, link tl çözücü, link tl çalışan bot, link tl engelleme, link tl geçme, link tl geçici, link tl geçme sitesi, link tl hile, link tl hack, link tl hileleri, link tl link kısaltma, link tl link açma, link tl link çevirici, link tl script,link tl geçme, link tl geçici, link tl geçme sitesi, link tl geçilmiyor, link tl geçmiyor, link.tl geçemiyorum, link tl geç, link tl geçme 2017, link tl nasıl geçilir, link.tl otomatik geçme,link tl geçme 2018

WhatsApp Şaka Virüsü

Whatsapp Şaka virüsü ile internetten anlamayan arkadaşlarınıza link atarak eğlenebilirsiniz. Sosyal mühendisliğiniz ne kadar iyiyse inandırıcılıkta artar. Hem android hem ios kullanıcılarında çalışır. Baştan söyleyelim bu virüs değildir. Yine siz bilirsiniz. Bu aralar hacklenmedik sistem kalmadı :D CiftKlik.Net olarak sorumluluk kabul etmiyoruz. Whatsapp api'ları ile ekrana istediğimiz yazıyı yazarak sosyal mühendislik yapıyoruz.

Firebase (JS) ile Gerçek Zamanlı Veri Tabanı

Javascript Firebase Web Kullanımı Bu yazı, web uygulamaları arasındaki iletişim için Firebase 'in Javascript ile Gerçek Zamanlı Veritabanını ( Real Time Database)  anlatan Türkçe dökümantasyondur.  Gerçek Zamanlı Veritabanı , istemciler ve sunucu arasındaki iletişim için Websockets kullanır. Firebase Nedir , Özellikleri? JSON formatı ile verilerimizi  gerçek zamanlı olarak depolayabildiğimiz, anlık olarak değişiklikleri görebildiğimiz websocket apisidir.  Cloud Firestore, Cloud Functions,Authentication, Hosting, Cloud Storage ,Realtime Database... WebSocket ve Real time Nedir? WebSocket, tek bir TCP bağlantısı üzerinden iki yönlü iletişim kanalı sağlayan bir iletişim protokolüdür. WebSocket protokolü, sunucuya ve sunucudan gerçek zamanlı veri aktarımını sağlayarak, tarayıcı ile web sunucusu arasında etkileşimi sağlamaktadır. Bu, sunucunun istemci istemeden tarayıcıya içerik gönderebileceği ve bağlantıyı açık tutarak istediği zaman mesaj alabilmesini veya gön

Bütün yazılım dillerinde "Merhaba Dünya" kodları

1)  ASSEMBLY // Ekrana “Merhaba!” yazan örnek program kodu: mov ax,cs mov ds,ax mov ah,9 mov dx, offset Git int 21h xor ax,ax int 21h Git: db "Merhaba!",13,10,"$" 2)  ALGOL (ALGOrithmic Language) // ALGOL 68'e ait, örnek “Merhaba!” kodu: begin print(( "Merhaba!" , newline)) end

Sesiniz Taklit Edilebilir : Google Dublex, Lyrebird

Text To Speech Teknolojisi  Google Dublex, Lyrebird, VoCo Google I/O etkinliği sırasında Google Assistant 'ın yeni özelliği Duplex tanıtıldı. Yapay zeka tabanlı konuşma teknolojisi ile sesinizi taklit ettirebilir. Telefon görüşmelerinizi,randevularınızı ona yaptırabilirsiniz. Belkide ilerde şarkı söyletebilir, şiir okutabilirsiniz. Aklınıza ne gelirse.