Evdeki Bilgisayardan Site Yayınlama Rehberi
Neden Evdeki Bilgisayardan Site Yayınlamak?
Evdeki bilgisayardan site yayınlamak, hızlı demo ve prototip oluşturmak, kişisel projeleri paylaşmak ve eğitim ve test ortamı oluşturmak için ideal bir çözümdür. Ancak, bazı sınırlamalar vardır: * Bilgisayar kapalıysa site kapanır. * Ev interneti upload hızı performansı etkiler. * Sürekli ve yüksek trafikte VPS önerilir.
Cloudflare Tunnel Mantığı
Cloudflare Tunnel, trafik önce Cloudflare'a gelir, ardından Cloudflare tünel üzerinden bilgisayarınıza iletir. Bu sayede modemde port açılmaz, alan adında IP yazılmaz ve HTTPS otomatik gelir.
Mimarinin Genel Görünümü
Mimarinin genel görünümü aşağıdaki gibidir: * Nginx: Geri yükleme proxy'si * PHP-FPM: PHP çalıştırma * Node.js: API veya servis * Cloudflare Tunnel: Dış dünyaya güvenli çıkış
Alan Adları
Alan adları aşağıdaki gibidir: * site.com -> localhost:80 * api.site.com -> localhost:3000
Gereksinimler
Gereksinimler aşağıdaki gibidir: * Alan adı * Cloudflare hesabı * Windows veya Linux bilgisayar * Nginx * PHP-FPM * Node.js * Cloudflared
Adım Adım Kurulum
Linux Kurulumu
1) Sistem Güncelleme
```html sudo apt update -y && sudo apt upgrade -y ```
2) Nginx + PHP-FPM
```html sudo apt install -y nginx php-fpm sudo systemctl enable nginx sudo systemctl start nginx ``` Test: ```html curl http://localhost ```
3) Node.js
```html curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - sudo apt install -y nodejs node -v ``` Örnek servis: ```html mkdir -p ~/nodeapi cd ~/nodeapi npm init -y npm i express printf "const express=require('express');const app=express();app.get('/',(r,s)=>s.send('ok'));app.listen(3000);" > index.js node index.js ```
4) Nginx Reverse Proxy
```html sudo tee /etc/nginx/sites-available/site.com <<'EOF' server { listen 80; server_name site.com; root /var/www/site; index index.php index.html; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php-fpm.sock; } } EOF sudo tee /etc/nginx/sites-available/api.site.com <<'EOF' server { listen 80; server_name api.site.com; location / { proxy_pass http://127.0.0.1:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; } } EOF sudo ln -s /etc/nginx/sites-available/site.com /etc/nginx/sites-enabled/site.com sudo ln -s /etc/nginx/sites-available/api.site.com /etc/nginx/sites-enabled/api.site.com sudo nginx -t sudo systemctl reload nginx ```
5) Cloudflared
```html wget -q https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb sudo dpkg -i cloudflared-linux-amd64.deb cloudflared -v ```
6) Tünel Oluşturma
```html cloudflared login cloudflared tunnel create benimtunnel cloudflared tunnel route dns benimtunnel site.com cloudflared tunnel route dns benimtunnel api.site.com ``` `~/.cloudflared/config.yml`: ```html tunnel: benimtunnel credentials-file: /home/kullanici/.cloudflared/benimtunnel.json ingress: - hostname: site.com service: http://localhost:80 - hostname: api.site.com service: http://localhost:3000 - service: http_status:404 ``` ```html cloudflared tunnel run benimtunnel ```
Windows Kurulumu
1) Nginx + PHP
* Windows için Nginx indir * PHP indir ve php.ini yapılandır * Nginx'i 80 portunda çalıştır
2) Node.js
* Node.js kur * Örnek servis: ```html mkdir %USERPROFILE%\nodeapi cd %USERPROFILE%\nodeapi npm init -y npm i express node -e "const express=require('express');const app=express();app.get('/',(r,s)=>s.send('ok'));app.listen(3000)" ```
3) Nginx Reverse Proxy (Windows)
* `nginx.conf` içine sunucu bloklarını ekle ve yeniden başlat
4) Cloudflared
* Cloudflared Windows binary indir * Örnek komutlar: ```html cloudflared -v cloudflared login cloudflared tunnel create benimtunnel cloudflared tunnel route dns benimtunnel site.com cloudflared tunnel route dns benimtunnel api.site.com cloudflared tunnel run benimtunnel ```
HTTPS ve Güvenlik
HTTPS otomatik gelir, IP gizlidir ve temel WAF ve DDoS koruması etkindir. Ek öneriler: * Yönetim panellerini alt alan adında tut * API için token doğrulaması ekle * Nginx rate limit uygula
Performans
Performans upload hızının belirleyicisidir. 7/24 kullanım için UPS önerilir.
SSS
* IP adresi girecek miyim? Hayır * Port açacak mıyım? Hayır * Alan adım olmadan olur mu? Geçici test adresiyle olur * Bilgisayar kapanırsa ne olur? Site erişimi kesilir Bu yöntemle evdeki bilgisayarını güvenli bir sunucuya çevirerek PHP ve Node.js projelerini dünyaya açabilirsin. Öğrenme, demo ve küçük ölçekli projeler için ideal çözümdür.