Nginx Bir Soru

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    crystalmeth
    crystalmeth's avatar
    Kayıt Tarihi: 25/Ağustos/2014
    Erkek

    merhaba,

    nginx ile ilk kez static sunucu ayağa kaldırmaya çalışıyorum fakat bir sorum var.

    localhost:3000'de çalışan sunucuyu reverse proxy yaptım ve ayağa kaldırınca dış ip ile hizmet vermeye başlıyor burada problem yok.site sorunsuz bir şekilde çalışıyor.

    backend tarafında ise express'i localhost:5000 de ayağa kaldırıyorum fakat dbden datalar gelmiyor. eğer burayıda reverse proxy yaparsam ve dış ip ile istek atarsam dataları alabiliyorum.

    bu işin olması gerekeni bu mudur? yani frontend de localhost:5000 ile dataları çekebilmem gerekmez mi? yoksa normal olan backend tarafınada dış ip ile mi istek atmak?
    Veya ben, backend tarafına reverse proxy yapmak istemiyorum mesela. Bu işin mantığı nedir?

    şimdiden teşekkürler,


    “Fortes Fortuna Adiuvat”
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Hermes
    abdullahazad
    abdullahazad's avatar
    Kayıt Tarihi: 21/Mayıs/2007
    Erkek

    frontentend de ne kullaniyorsun haci?

    frontend adi uzerinde onyuz oldugu icin clientta calisirken tabi ki localhost seklinde verilen adresten data cekemez.

    abdullahazad tarafından 05/Haz/21 15:37 tarihinde düzenlenmiştir

    az insan çok huzur.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    yolbulucu
    yolbulucu's avatar
    Kayıt Tarihi: 06/Nisan/2007
    Homo

    hocam tam setupını anlamadım ama ben de django için nginx + gunicornla biraz debelendikten sonra openlitespeedi keşfettim.  inanılmaz rahatladım ya, 10 dk da ayağa kaldırdım her şeyi. docker imajı falan da var düzgün.

    https://docs.litespeedtech.com/cloud/images/nodejs/

     


    29.99cm, titanyum kaplamalı, çift damarlı, su ve yağ soğutmalı.
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    herlocksholmes
    herlocksholmes's avatar
    Kayıt Tarihi: 16/Şubat/2014
    Erkek
    crystalmeth bunu yazdı

    merhaba,

    nginx ile ilk kez static sunucu ayağa kaldırmaya çalışıyorum fakat bir sorum var.

    localhost:3000'de çalışan sunucuyu reverse proxy yaptım ve ayağa kaldırınca dış ip ile hizmet vermeye başlıyor burada problem yok.site sorunsuz bir şekilde çalışıyor.

    backend tarafında ise express'i localhost:5000 de ayağa kaldırıyorum fakat dbden datalar gelmiyor. eğer burayıda reverse proxy yaparsam ve dış ip ile istek atarsam dataları alabiliyorum.

    bu işin olması gerekeni bu mudur? yani frontend de localhost:5000 ile dataları çekebilmem gerekmez mi? yoksa normal olan backend tarafınada dış ip ile mi istek atmak?
    Veya ben, backend tarafına reverse proxy yapmak istemiyorum mesela. Bu işin mantığı nedir?

    şimdiden teşekkürler,

    Localhost kendi makinenen hocam. Dolayısıyla backend servisler makinenin üzerinde değilse erişemeyecektir.

    Şöyle düşün: kullanıcı sitene giriyor, frontend uygulaması kullanıcının bilgisayarına yükleniyor. İsteği atacak olan o bilgisayar. Dolayısıyla localhost da o bilgisayarın kendisine istek atması demek. Kullanıcıya göre düşünmen gerekiyor. Bu kullanıcı iç networkden geliyorsa(yani internete kapalı intranete açık bir uygulamadan bahsediyorsak), iç network ip adresi kullanarak sunucuya istek atması gerekir. İnternet için de dış ip adresi tabiki.


  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    crystalmeth
    crystalmeth's avatar
    Kayıt Tarihi: 25/Ağustos/2014
    Erkek

    @abdullahazad vuejs kullanıyorum hocam

    @yolbulucu göz gezdiriyorum hocam teşekkürler

    @herlocksholmes backend servislerim kendi makinemin üstünde ama hocam vuejs localhost:3000 ve backend expressjs localhost:5000 aynı makinenin üstünde koşuyor. örneğin windows ortamında da expressjs'i ayağa kaldırıyorum localhost:5000'den ayağa kalkıyor ve ben sadece localhost:5000/api/query'e istek atarak db den sorgumu yapıp responsemi alabiliyorum.
    aynı mantığı linux nginx ortamında da bekledim. yada ben yanlış düşünüyorum. 

    yani örneğin:

    //bu istek evet reverse proxy yaparsam sunucuda çalışıyor
    axios.get("http://159.89.xxx.xxx:5000/api", {
    
    // bu istek hiç bir şekilde çalışmıyor
    axios.get("http://localhost:5000/api", {
    
    

    fakat bu localhost isteğini ben windows ortamında yaparsam çalışıyor. yani frontend ile localhost:5000'e istek atarsam dönüş alabiliyorum. fark nedir? neyi yanlış düşünüyorum?

     

    crystalmeth tarafından 05/Haz/21 17:34 tarihinde düzenlenmiştir

    “Fortes Fortuna Adiuvat”
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    2021 Talihlisi
    Deleted001
    Deleted001's avatar
    Kayıt Tarihi: 22/Kasım/2020
    Erkek
    crystalmeth bunu yazdı
    //bu istek evet reverse proxy yaparsam sunucuda çalışıyor
    axios.get("http://159.89.xxx.xxx:5000/api", {
    
    // bu istek hiç bir şekilde çalışmıyor
    axios.get("http://localhost:5000/api", {
    
    

    fakat bu localhost isteğini ben windows ortamında yaparsam çalışıyor. yani frontend ile localhost:5000'e istek atarsam dönüş alabiliyorum. fark nedir? neyi yanlış düşünüyorum?

     

    NGINX'e mülkünü tanıtman lazım, yani yayını 159.89'dan mı yoksa localhost'tan mı yoksa ::'dan mı yapacağını server bloğunda ayarlaman gerekiyor; benim aklıma gelen bu oldu açıkcası.

  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Hermes
    abdullahazad
    abdullahazad's avatar
    Kayıt Tarihi: 21/Mayıs/2007
    Erkek
    crystalmeth bunu yazdı

    @abdullahazad vuejs kullanıyorum hocam

    @yolbulucu göz gezdiriyorum hocam teşekkürler

    @herlocksholmes backend servislerim kendi makinemin üstünde ama hocam vuejs localhost:3000 ve backend expressjs localhost:5000 aynı makinenin üstünde koşuyor. örneğin windows ortamında da expressjs'i ayağa kaldırıyorum localhost:5000'den ayağa kalkıyor ve ben sadece localhost:5000/api/query'e istek atarak db den sorgumu yapıp responsemi alabiliyorum.
    aynı mantığı linux nginx ortamında da bekledim. yada ben yanlış düşünüyorum. 

    yani örneğin:

    //bu istek evet reverse proxy yaparsam sunucuda çalışıyor
    axios.get("http://159.89.xxx.xxx:5000/api", {
    
    // bu istek hiç bir şekilde çalışmıyor
    axios.get("http://localhost:5000/api", {
    
    

    fakat bu localhost isteğini ben windows ortamında yaparsam çalışıyor. yani frontend ile localhost:5000'e istek atarsam dönüş alabiliyorum. fark nedir? neyi yanlış düşünüyorum?

     

    ee hocam normal değil mi? :D server ile ayni ağdan istek atiyorsun tabi ki yanıt alırsın. :)

    vue uzerinde kulandiğin api adresin localhost ise kullanamazsin hocam. cevap cok basit. ben sitene girdigimde o vue arayuzun js olarak benim browser'da caliscak. peki bu durumda ben senin localhost'a nasıl erisebilirim? senin sunucun ile ayni networkte olsam bile erisemem. localhost 127.0.0.1 e giden loopback adrestir.

    api adresin icin mesela api.domain.com icin reserve proxy yarat ve localhost:5000 e pasla.

    vue içinde de api adresi olarak api.domain.com ver. başka türlü çözebileceğini zannetmiyorum açıkcası :( 

    ha bunun icinde istersen extra header bilgileri ile guvenlik almaya calisabilirsin.

     

    abdullahazad tarafından 05/Haz/21 18:16 tarihinde düzenlenmiştir

    az insan çok huzur.
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    crystalmeth
    crystalmeth's avatar
    Kayıt Tarihi: 25/Ağustos/2014
    Erkek

    şimdi anladım tamam :D doğru. dışarıda çalışan client localhosta istek atarak nasıl çalışsın.

    teşekkürler.. @abdullahazad @herlocksholmes

     

    crystalmeth tarafından 05/Haz/21 19:35 tarihinde düzenlenmiştir

    “Fortes Fortuna Adiuvat”
Toplam Hit: 1775 Toplam Mesaj: 8
nginx