PHP, Ruby, Python gibi yorumlanan (interpreted) dilleri yayınlamak derlenen (compiled) dilleri yayınlamaktan görece daha kolaydır. Genellikle ek bir konfigürasyon yapmadan hazır shared sunucularda kolayca yayına atıyorsunuz. Ancak C, C++, Golang, Haskell, Rust gibi derlenen dilleri yayınlarken en azından bir VPS sunucuya ihtiyacınız olacak çünkü ssh ile root erişimi sağlamadan bu işlemleri yapmak kolay değil. Çeşitli çözümler olsa da yine de çok maliyetli olacaktır.
Derlenen bir dille web servisi geliştirdiğinize göre performans'ın öneminin farkındasınızdır. Özellikle C++, Rust ve Golang bu alanda en sırasıyla en iyi backend performansını gösteren diller.
Bir programlama dili ile kodladığınız web servisi sunucunuzda ayağa kaldırmak için aşağıdaki adımları izleyebilirsiniz:
İkili çıktınızı sunucunuza yükleyin. Örneğin, scp
kullanarak sunucunuza dosya yükleyebilirsiniz.
Sunucuda ikili dosyayı çalıştırmak için komut satırından ikili dosyanın yolunu ve parametreleri kullanarak çalıştırın. Örneğin, ./web-server --port 5689
Web servisi çalışırken sunucu kapatılmamalıdır. Bu nedenle, web servisi otomatik olarak tekrar başlatmak için bir daemon oluşturmanız gerekebilir.
Daemon oluşturmak için aşağıdaki adımları izleyebilirsiniz:
Servis yapılandırma dosyası oluşturun. Örneğin, /etc/systemd/system/web-server.service
Dosyaya aşağıdaki içeriği ekleyin
[Unit]
Description=Web Server
[Service]
ExecStart=/path/to/web-server --port 5689
Restart=always
User=yourusername
[Install]
WantedBy=multi-user.target
Servisi sisteme kaydedin: sudo systemctl enable web-server
Servisi başlatın: sudo systemctl start web-server
Bu işlemler ile oluşturduğunuz daemon sistem açıldığında otomatik olarak çalışacak ve eğer sunucu kapatılırsa tekrar açıldığında otomatik olarak web servisini çalıştırmasını sağlar. Bu sayede web servisini kesintisiz olarak kullanabilirsiniz. Eğer sunucuda herhangi bir problem oluşursa, daemon otomatik olarak web servisini tekrar başlatacaktır.
Bunlara ek olarak alan adınıza bu yerel adresi ve portu reverse proxy ile bağlamanız gerekecektir. Buna da başka bir makalede değineceğim.