Bu rehber, kendi bilgisayarını (PC veya laptop) küçük bir sunucu gibi kullanarak PHP ve Node.js tabanlı projeleri port açmadan, IP gizleyerek ve otomatik HTTPS ile dünyaya açmanı sağlar. Adımlar Windows ve Linux için ayrı ayrı verilmiştir.
Neden Evdeki Bilgisayardan Site Yayınlamak?
-
Hızlı demo ve prototip
-
Kişisel projeleri paylaşma
-
Eğitim ve test ortamı
Sınırlamalar:
-
Bilgisayar kapalıysa site kapanır
-
Ev interneti upload hızı performansı etkiler
-
Sürekli ve yüksek trafikte VPS önerilir
Cloudflare Tunnel Mantığı
-
Trafik önce Cloudflare’a gelir
-
Cloudflare tünel üzerinden bilgisayarına iletir
-
Modemde port açılmaz
-
Alan adında IP yazılmaz
-
HTTPS otomatik gelir
Mimarinin Genel Görünümü
-
Nginx: Reverse proxy
-
PHP-FPM: PHP çalıştırma
-
Node.js: API veya servis
-
Cloudflare Tunnel: Dış dünyaya güvenli çıkış
Alan adları:
-
site.com -> localhost:80
-
api.site.com -> localhost:3000
Gereksinimler
-
Alan adı
-
Cloudflare hesabı
-
Windows veya Linux bilgisayar
-
Nginx
-
PHP-FPM
-
Node.js
-
Cloudflared
ADIM ADIM KURULUM
Linux Kurulumu
1) Sistem Güncelleme
sudo apt update -y && sudo apt upgrade -y
2) Nginx + PHP-FPM
sudo apt install -y nginx php-fpm
sudo systemctl enable nginx
sudo systemctl start nginx
Test:
curl http://localhost
3) Node.js
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
node -v
Örnek servis:
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
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
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
cloudflared login
cloudflared tunnel create benimtunnel
cloudflared tunnel route dns benimtunnel site.com
cloudflared tunnel route dns benimtunnel api.site.com
~/.cloudflared/config.yml:
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
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
node -v
Örnek servis:
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
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
-
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
-
Upload hızın belirleyicidir
-
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.