• 14-01-2025, 15:10:18
    #1
    Merhabalar,
    dostlar bir sorunum var aşağıda conf dosyamdaki server ayarını paylaşıyorum
    server {
        listen 80;
        server_name _;
        resolver 127.0.0.1;
        location /_next/static/ {
            alias C:/Users/Administrator/Desktop/projects/nextjs-app/.next/static/;
            expires 1y;
            access_log off;
            add_header Cache-Control "public";
        }
        location /global.css {
            alias C:/Users/Administrator/Desktop/projects/nextjs-app/app/global.css;
            expires 1y;
            access_log off;
            add_header Cache-Control "public";
        }
        location / {
            rewrite ^/(.*)$ /$host/$1 break;
            proxy_pass http://127.0.0.1:3000; 
            proxy_http_version 1.1;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_cache_bypass $http_upgrade;
        }
    }
    biraz sistemi anlatmam gerekirse
    örneğin sunucu ip adresi 11.11.11.11 olsun
    uygulamanın çalıştığı port 3000
    example.com alan adından gelen isteğe göstermesi gereken sayfa: http://11.11.11.11:3000/example.com
    example.com/activity şeklinde gelen isteğe göstermesi gereken sayfa: http://11.11.11.11:3000/example.com/activity
    loremipsum.com için göstermesi gereken sayfa http://11.11.11.11:3000/loremipsum.com
    loremipsum.com/activity için göstermesi gereken sayfa http://11.11.11.11:3000/loremipsum.com/activity

    sistemin bi kısmı çalışıyor yani örneğin loremipsum.com/activity dediğimde istenilen sayfayı gösteriyor (tarayıcının url kısmında loremipsum.com/activity yazmalı ve bu şekilde şu anda da) fakat loremipsum.com dediğimde beni loremipsum.com/loremipsum.com'a gönderiyor ve gösterdiği sayfa 404 hata sayfası göstermesi gereken sayfa ise app/[host]/page.tsx aşağıya dosya yapısınıda bıraktım SaaS bir uygulama geliştirmeye çalışıyorum yardımcı olacak arkadaşlara şimdiden teşekkürler
  • 14-01-2025, 15:14:00
    #2
    server {
        listen 80;
        server_name _;
        resolver 127.0.0.1;
        
        location /_next/static/ {
            alias C:/Users/Administrator/Desktop/projects/nextjs-app/.next/static/;
            expires 1y;
            access_log off;
            add_header Cache-Control "public";
        }
        
        location /global.css {
            alias C:/Users/Administrator/Desktop/projects/nextjs-app/app/global.css;
            expires 1y;
            access_log off;
            add_header Cache-Control "public";
        }
        
        location / {
            proxy_pass http://127.0.0.1:3000;
            proxy_http_version 1.1;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_cache_bypass $http_upgrade;
        }
        
        location ~ ^/([a-zA-Z0-9-]+)(.*)$ {
            proxy_pass http://127.0.0.1:3000/$1$2;
            proxy_set_header Host $host;
        }
    }
    Dosyanızı böyle düzenleyerek tekrar dener misiniz
  • 14-01-2025, 15:14:06
    #3
    Edit: Yanlış anlaşılma
  • 14-01-2025, 15:23:59
    #4
    tiqxe adlı üyeden alıntı: mesajı görüntüle
    server {
        listen 80;
        server_name _;
        resolver 127.0.0.1;
        
        location /_next/static/ {
            alias C:/Users/Administrator/Desktop/projects/nextjs-app/.next/static/;
            expires 1y;
            access_log off;
            add_header Cache-Control "public";
        }
        
        location /global.css {
            alias C:/Users/Administrator/Desktop/projects/nextjs-app/app/global.css;
            expires 1y;
            access_log off;
            add_header Cache-Control "public";
        }
        
        location / {
            proxy_pass http://127.0.0.1:3000;
            proxy_http_version 1.1;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_cache_bypass $http_upgrade;
        }
        
        location ~ ^/([a-zA-Z0-9-]+)(.*)$ {
            proxy_pass http://127.0.0.1:3000/$1$2;
            proxy_set_header Host $host;
        }
    }
    Dosyanızı böyle düzenleyerek tekrar dener misiniz
    Düzenledim şöyle bir sonuca ulaştım evet anasayfam çalışıyor fakat
    http://example.com/example.com olarak çalıştı
    http://example.com/activity sayfası yine anasayfayı ekrana getiriyor ve diğer sayfalar
    fakat http://example.com/example.com/activity yaptığımda activity sayfasına ulaşabiliyorum

    nasıl bir çözüm üretebilirim
  • 14-01-2025, 15:29:15
    #5
    denizemekli adlı üyeden alıntı: mesajı görüntüle
    Düzenledim şöyle bir sonuca ulaştım evet anasayfam çalışıyor fakat
    http://example.com/example.com olarak çalıştı
    http://example.com/activity sayfası yine anasayfayı ekrana getiriyor ve diğer sayfalar
    fakat http://example.com/example.com/activity yaptığımda activity sayfasına ulaşabiliyorum

    nasıl bir çözüm üretebilirim
    server {
        listen 80;
        server_name _;
        resolver 127.0.0.1;
    
        # Statik dosyaları sunmak için
        location /_next/static/ {
            alias C:/Users/Administrator/Desktop/projects/nextjs-app/.next/static/;
            expires 1y;
            access_log off;
            add_header Cache-Control "public";
        }
    
        location /global.css {
            alias C:/Users/Administrator/Desktop/projects/nextjs-app/app/global.css;
            expires 1y;
            access_log off;
            add_header Cache-Control "public";
        }
    
        # Ana yönlendirme
        location / {
            proxy_pass http://127.0.0.1:3000$request_uri;
            proxy_http_version 1.1;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }
    Birde böyle dene bakalım rewrite'yi kaldırdım gereksizdi. $request_uri ekledim. Şu an bir sorun olmaması lazım
  • 14-01-2025, 15:30:33
    #6
    Next JS'in configinden
    const nextConfig = {
        output: 'export',
    };
    bunu yapip npm run build komutu ile statik cikti alip onu nginx ile servis edebilirsiniz
  • 14-01-2025, 15:35:04
    #7
    efeakaroz13 adlı üyeden alıntı: mesajı görüntüle
    Next JS'in configinden
    const nextConfig = {
        output: 'export',
    };
    bunu yapip npm run build komutu ile statik cikti alip onu nginx ile servis edebilirsiniz
    Arkadaşın dediğine katılıyorum, böyle daha hızlı performans verir ve CDN ile tam uyumlu oluyor. Daha basit oluyor. Fakat eğer sunucuda SSR veya API Route kullanıyorsan bu yöntem uygun değil ama eğer sadece statik içerikler sunuyorsan mükemmel bir çözüm, dinamik içerik varsa Nginx ayarlarını düzeltmen daha iyi olur
  • 14-01-2025, 15:44:48
    #8
    tiqxe adlı üyeden alıntı: mesajı görüntüle
    server {
        listen 80;
        server_name _;
        resolver 127.0.0.1;
    
        # Statik dosyaları sunmak için
        location /_next/static/ {
            alias C:/Users/Administrator/Desktop/projects/nextjs-app/.next/static/;
            expires 1y;
            access_log off;
            add_header Cache-Control "public";
        }
    
        location /global.css {
            alias C:/Users/Administrator/Desktop/projects/nextjs-app/app/global.css;
            expires 1y;
            access_log off;
            add_header Cache-Control "public";
        }
    
        # Ana yönlendirme
        location / {
            proxy_pass http://127.0.0.1:3000$request_uri;
            proxy_http_version 1.1;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }
    Birde böyle dene bakalım rewrite'yi kaldırdım gereksizdi. $request_uri ekledim. Şu an bir sorun olmaması lazım
    maalesef sorun devam ediyor yine urli http://example.com/example.com yaptı ve sayfalar çalışmıyor (sadece ana sayfa çalışıyor)



    tiqxe adlı üyeden alıntı: mesajı görüntüle
    Arkadaşın dediğine katılıyorum, böyle daha hızlı performans verir ve CDN ile tam uyumlu oluyor. Daha basit oluyor. Fakat eğer sunucuda SSR veya API Route kullanıyorsan bu yöntem uygun değil ama eğer sadece statik içerikler sunuyorsan mükemmel bir çözüm, dinamik içerik varsa Nginx ayarlarını düzeltmen daha iyi olur
    efeakaroz13 adlı üyeden alıntı: mesajı görüntüle
    Next JS'in configinden
    const nextConfig = {
        output: 'export',
    };
    bunu yapip npm run build komutu ile statik cikti alip onu nginx ile servis edebilirsiniz
    nextjs projem ön yüz birde bunun react-native expo ile bir backendi var backend'de api var bu işime yarar mı hiç kullanmadım söylediğinizi daha önce nextjs projesinde işletme hakkında bilgiler var ve o işletmenin yorumları iletişim formu o işletmeye ait ürünler kategorileri ve sipariş oluşturulabilecek bir sistem gelen verileri json ile react-native projemden çekiyorum giden verileri de react native projeme post olarak iletip işlemi orada döndürüyorum umarım açıklayabilmişimdir
  • 14-01-2025, 16:21:14
    #9
    denizemekli adlı üyeden alıntı: mesajı görüntüle
    maalesef sorun devam ediyor yine urli http://example.com/example.com yaptı ve sayfalar çalışmıyor (sadece ana sayfa çalışıyor)







    nextjs projem ön yüz birde bunun react-native expo ile bir backendi var backend'de api var bu işime yarar mı hiç kullanmadım söylediğinizi daha önce nextjs projesinde işletme hakkında bilgiler var ve o işletmenin yorumları iletişim formu o işletmeye ait ürünler kategorileri ve sipariş oluşturulabilecek bir sistem gelen verileri json ile react-native projemden çekiyorum giden verileri de react native projeme post olarak iletip işlemi orada döndürüyorum umarım açıklayabilmişimdir
    server {
        listen 80;
        server_name _;
        resolver 127.0.0.1;
    
        # Static dosyalar için yapılandırma
        location /_next/static/ {
            alias C:/Users/Administrator/Desktop/projects/nextjs-app/.next/static/;
            expires 1y;
            access_log off;
            add_header Cache-Control "public";
        }
    
        # Global CSS için yapılandırma
        location /global.css {
            alias C:/Users/Administrator/Desktop/projects/nextjs-app/app/global.css;
            expires 1y;
            access_log off;
            add_header Cache-Control "public";
        }
    
        # Ana yönlendirme yapılandırması
        location / {
            proxy_pass http://127.0.0.1:3000;
            proxy_http_version 1.1;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_cache_bypass $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header Upgrade $http_upgrade;
    
            # URL yeniden yazma kuralını kaldırdım
            # rewrite ^/(.*)$ /$host/$1 break; 
        }
    }
    Birde böyle deneyip bir sorun varsa yazar mısın? Birde Next.js uygulamanın middleware.ts ve next.config.js dosyalarını da paylaşırsan daha detaylı yardımcı olabilirim. Belki oralarda sorun olabilir.