Blog
Mert Özen's blog posts on software development, backend, frontend, and DevOps.
Running a .NET App as a systemd Service on Linux
Run Kestrel under systemd as a separate user with Type=notify and AddSystemd, KillSignal=SIGTERM and hardening settings; KillSignal=SIGINT cuts open requests and systemd still reports success. We measure publish option sizes, the runtime coming from the distribution repository on Ubuntu 24.04, journald output, restart after a crash, the exposure score dropping from 9.2 to 3.8, and 0.2-second deploys and rollbacks with a releases/current symlink.
Nginx Fundamentals: Installation, nginx.conf Structure, server and location Blocks
Installing Nginx from the nginx.org repository gives you the current stable branch (1.30); Ubuntu 24.04's package stays on 1.24. With real runs we look at master and worker processes, nginx.conf contexts, rejecting unknown hosts with default_server, the location matching algorithm (=, longest prefix, ^~, regex), root versus alias, the trailing slash in proxy_pass, and how reload and restart behave differently with a broken config.