• 14-03-2025, 20:20:34
    #1
    Nginxte yapmak istediğim bir şey var, bir türlü yapamadım Cloudpanel üzerinden Vhost düzenlemesi yapiyorum, ücretli de yapabiliriz. Sorun şu:


    PHP' de dinamik olarak ayarlayacagımız bir baslıga göre (x-use-eventstream: true ) gibi. 2 farklı nginx yapilandirmasi istiyoruz.

    Bu basligi response ettiysek,

          proxy_buffering off;
              proxy_request_buffering off;
    Bu sekilde. Baslık response etmediysek:

       proxy_buffer_size          128k;
         proxy_buffers              4 256k;
      proxy_busy_buffers_size    256k;
    bu sekilde calismasini istiyoruz. Mümkün müdür ? Ayrıca Request "Accept: text/event-stream" headerina göre de olabilir 2si de bizim için uygun.
  • 14-03-2025, 20:23:54
    #2
    Merhaba.
    Lua ile OpenResty Kullanarak denediniz mi?
  • 14-03-2025, 20:25:39
    #3
    farukturgut adlı üyeden alıntı: mesajı görüntüle
    Merhaba.
    Lua ile OpenResty Kullanarak denediniz mi?
    hayır, herhangi bir eklenti kullanmadan yapmanın bir yolunu arıyordum açıkçası. ancak bir çözüm yoksa eklenti mecbur kullanacagım sanırım.
  • 14-03-2025, 20:27:56
    #4
    profweb adlı üyeden alıntı: mesajı görüntüle
    hayır, herhangi bir eklenti kullanmadan yapmanın bir yolunu arıyordum açıkçası. ancak bir çözüm yoksa eklenti mecbur kullanacagım sanırım.
    İleteceğim cevap yapay zeka cevabıdır işlemlerinizi hızlandırmak adına bilginiz olsun.
    --

    map ve if ile bir çözüm oluşturabilirsiniz, ancak doğrudan response header’a göre değiştirme yapamazsınız. Yine de, request header üzerinden bu kararı verebilirsiniz:


    map $http_x_use_eventstream $buffering {
        default "on";
        true "off";
    }
    
    server {
        listen 80;
    
        location / {
            proxy_buffering $buffering;
            proxy_request_buffering $buffering;
    
            proxy_buffer_size          128k;
            proxy_buffers              4 256k;
            proxy_busy_buffers_size    256k;
    
            proxy_pass http://backend_server;
        }
    }
    Bu yöntem, x-use-eventstream başlığı request içinde geliyorsa çalışır. Ama response başlığına göre hareket etmez.
  • 14-03-2025, 20:31:50
    #5
    farukturgut adlı üyeden alıntı: mesajı görüntüle
    İleteceğim cevap yapay zeka cevabıdır işlemlerinizi hızlandırmak adına bilginiz olsun.
    --

    map ve if ile bir çözüm oluşturabilirsiniz, ancak doğrudan response header’a göre değiştirme yapamazsınız. Yine de, request header üzerinden bu kararı verebilirsiniz:


    map $http_x_use_eventstream $buffering {
        default "on";
        true "off";
    }
    
    server {
        listen 80;
    
        location / {
            proxy_buffering $buffering;
            proxy_request_buffering $buffering;
    
            proxy_buffer_size          128k;
            proxy_buffers              4 256k;
            proxy_busy_buffers_size    256k;
    
            proxy_pass http://backend_server;
        }
    }
    Bu yöntem, x-use-eventstream başlığı request içinde geliyorsa çalışır. Ama response başlığına göre hareket etmez.
    Hocam teşekkürler, bunları ben de denedim, map blogu http blogununu içinde olmasi gerektiginden hata veriyor. Çözümü şimdi buldum:

    header('X-Accel-Buffering: no');
    başlığı kullanmak gerekiyor. bu varsayılan olarak Nginx'te aktif değil, onun için de:

    location ~ \.php$ {
    ....
    fastcgi_pass_header "X-Accel-Buffering";
    ....
    }
    bu fastcgi_pass parametresini eklemek gerekiyormuş bu şekilde sorun çözüldü. Sonradan sorun yaşayan kullanıcılar için yazdım.
    Kaynak: https://serverfault.com/a/938042

    İlginiz için de tekrar teşekkürler.