{"id":13327,"date":"2025-12-20T11:01:32","date_gmt":"2025-12-20T05:31:32","guid":{"rendered":"https:\/\/www.youstable.com\/blog\/?p=13327"},"modified":"2025-12-20T11:01:35","modified_gmt":"2025-12-20T05:31:35","slug":"how-to-setup-nginx-on-linux-server","status":"publish","type":"post","link":"https:\/\/www.youstable.com\/blog\/how-to-setup-nginx-on-linux-server","title":{"rendered":"How to Setup Nginx on Linux Server (Easy Guide)"},"content":{"rendered":"\n<p>To set up Nginx on a Linux server, update your packages, install Nginx from your distro\u2019s repository, allow HTTP\/HTTPS in your firewall, start and enable the service, create a server block for your domain, test the configuration, reload Nginx, and add free TLS with Let\u2019s Encrypt for HTTPS. Steps vary slightly by distribution.<\/p>\n\n\n\n<p>In this guide, you\u2019ll learn how to setup Nginx on a Linux server from scratch\u2014covering installation, firewall rules, server blocks, SSL, reverse proxy, and essential optimizations. Whether you\u2019re on Ubuntu, Debian, CentOS, AlmaLinux, or openSUSE, follow along for a clean, secure, and high\u2011performance <a href=\"https:\/\/www.youstable.com\/blog\/configure-nginx-on-linux\/\">Nginx configuration<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"prerequisites-and-what-youll-need\"><strong>Prerequisites and What You\u2019ll Need<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A Linux server (Ubuntu\/Debian, CentOS\/AlmaLinux\/RHEL, openSUSE, or Amazon Linux)<\/li>\n\n\n\n<li>Root or sudo access<\/li>\n\n\n\n<li>A domain name (optional but recommended for HTTPS)<\/li>\n\n\n\n<li>Basic terminal familiarity<\/li>\n\n\n\n<li>Open ports 80 (HTTP) and 443 (HTTPS)<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"install-nginx-on-linux-all-major-distros\"><strong>Install Nginx on Linux (All Major Distros)<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"ubuntu-debian\"><strong>Ubuntu\/Debian<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update\nsudo apt <a href=\"https:\/\/www.youstable.com\/blog\/install-nginx-on-linux\/\">install -y nginx<\/a>\nsudo systemctl enable --now nginx\nsudo systemctl status nginx --no-pager<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"rhel-centos-almalinux-amazon-linux\"><strong>RHEL\/CentOS\/AlmaLinux\/Amazon Linux<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># RHEL\/AlmaLinux\/Rocky (EPEL may be needed on some versions)\nsudo dnf install -y nginx\nsudo systemctl enable --now nginx\nsudo systemctl status nginx --no-pager\n\n# CentOS 7 (legacy)\nsudo <a href=\"https:\/\/www.youstable.com\/blog\/install-yum-on-linux\/\">yum install<\/a> -y epel-release\nsudo yum install -y nginx\nsudo systemctl enable --now nginx\n\n# Amazon Linux 2\nsudo amazon-linux-extras install -y nginx1\nsudo systemctl enable --now nginx<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"opensuse\"><strong>openSUSE<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo zypper refresh\nsudo zypper install -y nginx\nsudo systemctl enable --now nginx<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"allow-http-https-in-the-firewall-and-selinux\"><strong>Allow HTTP\/HTTPS in the Firewall (and SELinux)<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"ufw-ubuntu-debian\"><strong>UFW (Ubuntu\/Debian)<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw allow 'Nginx Full'   # opens 80 and 443\nsudo ufw status<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"firewalld-rhel-centos-almalinux-fedora\"><strong>firewalld (RHEL\/CentOS\/AlmaLinux\/Fedora)<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo firewall-cmd --permanent --add-service=http\nsudo firewall-cmd --permanent --add-service=https\nsudo firewall-cmd --reload\nsudo firewall-cmd --list-all<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"selinux-if-enforcing\"><strong>SELinux (if enforcing)<\/strong><\/h3>\n\n\n\n<p>If SELinux is enforcing and you proxy to upstream apps, allow network connections:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo setsebool -P httpd_can_network_connect 1<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"nginx-directory-structure-and-config-basics\"><strong>Nginx Directory Structure and Config Basics<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Main configuration: <code>\/etc\/nginx\/nginx.conf<\/code><\/li>\n\n\n\n<li>Extra configs: <code>\/etc\/nginx\/conf.d\/*.conf<\/code> (all distros)<\/li>\n\n\n\n<li>Debian-style server blocks: <code>\/etc\/nginx\/sites-available\/<\/code>, symlink to <code>sites-enabled\/<\/code><\/li>\n\n\n\n<li>Default web root: <code>\/var\/www\/html<\/code><\/li>\n\n\n\n<li>Logs: <code>\/var\/log\/nginx\/access.log<\/code>, <code>\/var\/log\/nginx\/error.log<\/code><\/li>\n<\/ul>\n\n\n\n<p>Always validate changes with <code>nginx -t<\/code> and reload the service. This prevents downtime from syntax errors.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"create-a-server-block-virtual-host-for-your-domain\"><strong>Create a Server Block (Virtual Host) for Your Domain<\/strong><\/h2>\n\n\n\n<p>Below is a simple server block for <code>demo.example.com<\/code> serving static files. Adjust paths and domain as needed.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo mkdir -p \/var\/www\/demo.example.com\/html\nsudo chown -R $USER:$USER \/var\/www\/demo.example.com\/html\necho \"&lt;h1&gt;Hello from Nginx on Linux!&lt;\/h1&gt;\" | sudo tee \/var\/www\/demo.example.com\/html\/index.html<\/code><\/pre>\n\n\n\n<p>Debian\/Ubuntu layout:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nano \/etc\/nginx\/sites-available\/demo.example.com<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>server {\n    listen 80;\n    listen &#91;::]:80;\n    server_name demo.example.com;\n\n    root \/var\/www\/demo.example.com\/html;\n    index index.html;\n\n    access_log \/var\/log\/nginx\/demo_access.log;\n    error_log  \/var\/log\/nginx\/demo_error.log;\n\n    location \/ {\n        try_files $uri $uri\/ =404;\n    }\n}<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ln -s \/etc\/nginx\/sites-available\/demo.example.com \/etc\/nginx\/sites-enabled\/\nsudo nginx -t\nsudo systemctl reload nginx<\/code><\/pre>\n\n\n\n<p>RHEL\/CentOS\/AlmaLinux layout:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nano \/etc\/nginx\/conf.d\/demo.example.com.conf<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>server {\n    listen 80;\n    server_name demo.example.com;\n    root \/var\/www\/demo.example.com\/html;\n    index index.html;\n\n    access_log \/var\/log\/nginx\/demo_access.log;\n    error_log  \/var\/log\/nginx\/demo_error.log;\n\n    location \/ {\n        try_files $uri $uri\/ =404;\n    }\n}<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nginx -t\nsudo systemctl reload nginx<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"add-free-https-with-lets-encrypt-certbot\"><strong>Add Free HTTPS with Let\u2019s Encrypt (Certbot)<\/strong><\/h2>\n\n\n\n<p>Use Certbot\u2019s Nginx plugin to request and auto\u2011configure certificates. Ensure DNS for your domain points to your server\u2019s IP and port 80 is open.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"install-certbot\"><strong>Install Certbot<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># Ubuntu\/Debian (snap recommended)\nsudo snap install core\nsudo snap refresh core\nsudo snap install --classic certbot\nsudo ln -s \/snap\/bin\/certbot \/usr\/bin\/certbot\n\n# RHEL\/AlmaLinux\/CentOS\nsudo dnf install -y certbot python3-certbot-nginx\n\n# openSUSE\nsudo zypper install -y certbot python3-certbot-nginx<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"obtain-and-install-certificates\"><strong>Obtain and Install Certificates<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo certbot --nginx -d demo.example.com\n# Choose to <a href=\"https:\/\/www.youstable.com\/blog\/redirect-http-to-https\/\">redirect HTTP<\/a> to HTTPS when prompted<\/code><\/pre>\n\n\n\n<p>Certbot sets up auto\u2011renewal via systemd or cron. Test renewal with:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo certbot renew --dry-run<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"use-nginx-as-a-reverse-proxy-node-js-python-php-fpm\"><strong>Use Nginx as a Reverse Proxy (Node.js\/Python\/PHP-FPM)<\/strong><\/h2>\n\n\n\n<p>To serve an application listening on <code>127.0.0.1:3000<\/code>, configure Nginx as a reverse proxy with proper headers and WebSocket support:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>server {\n    listen 80;\n    server_name app.example.com;\n\n    # Optional: large uploads\n    client_max_body_size 20m;\n\n    location \/ {\n        proxy_pass http:\/\/127.0.0.1:3000;\n        proxy_http_version 1.1;\n        proxy_set_header Host $host;\n        proxy_set_header X-Real-IP $remote_addr;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n        proxy_set_header X-Forwarded-Proto $scheme;\n\n        # WebSockets\n        proxy_set_header Upgrade $http_upgrade;\n        proxy_set_header Connection \"upgrade\";\n    }\n}<\/code><\/pre>\n\n\n\n<p>On SELinux systems, enable network connections as noted earlier. For PHP apps, use <code>fastcgi_pass<\/code> to PHP\u2011FPM (e.g., <code>unix:\/run\/php\/php8.2-fpm.sock<\/code>).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"performance-tuning-essentials\"><strong>Performance Tuning Essentials<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Scale workers automatically and raise connections for busy sites.<\/li>\n\n\n\n<li>Compress assets (gzip) and cache static files aggressively.<\/li>\n\n\n\n<li>Disable version tokens in responses.<\/li>\n\n\n\n<li>Use HTTP\/2 by default for TLS (Certbot enables it on many setups).<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code># \/etc\/nginx\/nginx.conf (http block or include a conf.d\/tuning.conf)\nworker_processes auto;\nevents { worker_connections 4096; }\n\nhttp {\n    server_tokens off;\n\n    # Gzip\n    gzip on;\n    gzip_comp_level 5;\n    gzip_min_length 1024;\n    gzip_types text\/plain text\/css application\/javascript application\/json application\/xml image\/svg+xml;\n\n    # Cache static assets (adjust paths\/locations)\n    map $sent_http_content_type $expires {\n        default                    off;\n        ~image\/                    30d;\n        ~font\/                     30d;\n        ~text\/css                  7d;\n        ~application\/javascript    7d;\n    }\n\n    # Example static caching location\n    # location ~* \\.(?:css|js|jpg|jpeg|png|gif|svg|ico|webp|woff2?)$ {\n    #   expires $expires;\n    #   add_header Cache-Control \"public, immutable\";\n    # }\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"logging-and-monitoring\"><strong>Logging and Monitoring<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Tail logs during debugging:<br><code>sudo tail -f \/var\/log\/nginx\/access.log \/var\/log\/nginx\/error.log<\/code><\/li>\n\n\n\n<li>Analyze traffic with GoAccess:<br><code>sudo apt install goaccess<\/code> then <code>goaccess \/var\/log\/nginx\/access.log --log-format=COMBINED<\/code><\/li>\n\n\n\n<li>Integrate with systemd journal:<br><code>sudo journalctl -u nginx -e<\/code><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"common-errors-and-quick-fixes\"><strong>Common Errors and Quick Fixes<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Port already in use: Another service is on 80\/443. Check with <code>sudo ss -ltnp | grep ':80\\|:443'<\/code> and stop\/disable the conflicting service.<\/li>\n\n\n\n<li>Syntax error: Run <code>sudo nginx -t<\/code>. Fix the reported line and retry.<\/li>\n\n\n\n<li>403 Forbidden: Check file permissions\/ownership in your <code>root<\/code> path. Web user (e.g., <code>www-data<\/code> or <code>nginx<\/code>) needs read access.<\/li>\n\n\n\n<li>502 Bad Gateway: Upstream app is down or wrong <code>proxy_pass<\/code>\/<code>fastcgi_pass<\/code>. Verify app\u2019s IP:port\/socket and SELinux boolean.<\/li>\n\n\n\n<li>SSL issues: Ensure DNS resolves to your server, port 80 is open, and rerun Certbot. Renewals can be tested with <code>certbot renew --dry-run<\/code>.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"when-to-choose-managed-hosting-vs-diy\"><strong>When to Choose Managed Hosting vs DIY<\/strong><\/h2>\n\n\n\n<p>If you\u2019re deploying business\u2011critical sites, managed infrastructure can save hours weekly. At YouStable, our SSD\/NVMe VPS plans deliver consistent performance, free SSL, and 24\u00d77 expert support. We handle server hardening, firewall, and Nginx optimization so you can focus on your application\u2014not Linux minutiae.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"step-by-step-verify-and-reload-safely\"><strong>Step-by-Step: Verify and Reload Safely<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Validate: <code>sudo nginx -t<\/code><\/li>\n\n\n\n<li>Reload without downtime: <code>sudo systemctl reload nginx<\/code><\/li>\n\n\n\n<li>Check status: <code>sudo systemctl status nginx --no-pager<\/code><\/li>\n\n\n\n<li>Probe site: <code>curl -I http:\/\/demo.example.com<\/code> and <code>curl -I https:\/\/demo.example.com<\/code><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"best-practices-checklist\"><strong>Best Practices Checklist<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Keep Nginx and OS packages updated.<\/li>\n\n\n\n<li>Use separate server blocks per domain\/subdomain.<\/li>\n\n\n\n<li>Enable HTTPS with HSTS (after confirming TLS works reliably).<\/li>\n\n\n\n<li>Apply sensible timeouts and request limits to mitigate abuse.<\/li>\n\n\n\n<li>Back up configs in <code>\/etc\/nginx\/<\/code> and use version control.<\/li>\n\n\n\n<li>Monitor logs and set up alerts for spikes or 4xx\/5xx errors.<\/li>\n<\/ul>\n\n\n\n<p>With this step\u2011by\u2011step tutorial, you can confidently setup Nginx on a Linux server, enable HTTPS, proxy applications, and optimize performance. If you prefer a faster start, consider a YouStable VPS\u2014prepped for Nginx, security, and scalability from day one.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"faqs-setup-nginx-on-linux-server\"><strong>FAQs: Setup Nginx on Linux Server<\/strong><\/h2>\n\n\n<div id=\"rank-math-faq\" class=\"rank-math-block\">\n<div class=\"rank-math-list \">\n<div id=\"faq-question-1765793539831\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \" class=\"rank-math-question \" id=\"how-do-i-check-if-nginx-is-running\"><strong>How do I check if Nginx is running?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Use <code>systemctl status nginx<\/code> or <code>sudo ss -ltnp | grep nginx<\/code> to confirm it\u2019s listening on ports 80\/443. You can also visit your server\u2019s IP in a browser to see the default Nginx welcome page.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1765793546763\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \" class=\"rank-math-question \" id=\"where-is-the-nginx-configuration-file-on-linux\"><strong>Where is the Nginx configuration file on Linux?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>The main file is <code>\/etc\/nginx\/nginx.conf<\/code>. Extra configs go in <code>\/etc\/nginx\/conf.d\/*.conf<\/code>. On Ubuntu\/Debian, server blocks live in <code>\/etc\/nginx\/sites-available\/<\/code> with symlinks in <code>sites-enabled\/<\/code>.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1765793556029\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \" class=\"rank-math-question \" id=\"how-do-i-reload-nginx-after-configuration-changes\"><strong>How do I reload Nginx after configuration changes?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>First run <code>sudo nginx -t<\/code> to validate syntax. If OK, reload with <code>sudo systemctl reload nginx<\/code>. A reload applies changes without dropping active connections.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1765793568112\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \" class=\"rank-math-question \" id=\"how-do-i-set-up-multiple-websites-virtual-hosts\"><strong>How do I set up multiple websites (virtual hosts)?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Create one server block per domain with its own <code>server_name<\/code> and <code>root<\/code>. On Ubuntu\/Debian, add files to <code>sites-available\/<\/code> and enable with symlinks to <code>sites-enabled\/<\/code>. On RHEL-based distros, place each domain in <code>conf.d\/<\/code> as a separate <code>.conf<\/code>.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1765793581262\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \" class=\"rank-math-question \" id=\"is-nginx-better-than-apache\"><strong>Is Nginx better than Apache?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Both are excellent. Nginx excels at high concurrency, static file delivery, and reverse proxying. Apache offers rich modules and .htaccess flexibility. Many production stacks use Nginx in front of <a href=\"https:\/\/www.youstable.com\/blog\/what-is-apache-web-server-on-linux\/\">Apache or app servers<\/a> for best results.<\/p>\n\n<\/div>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>To set up Nginx on a Linux server, update your packages, install Nginx from your distro\u2019s repository, allow HTTP\/HTTPS in [&hellip;]<\/p>\n","protected":false},"author":13,"featured_media":15510,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[350],"tags":[],"class_list":["post-13327","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-knowledgebase"],"acf":[],"featured_image_src":"https:\/\/www.youstable.com\/blog\/wp-content\/uploads\/2025\/12\/How-to-Setup-Nginx-on-Linux-Server.jpg","author_info":{"display_name":"Prahlad Prajapati","author_link":"https:\/\/www.youstable.com\/blog\/author\/prahladblog"},"_links":{"self":[{"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/posts\/13327","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/comments?post=13327"}],"version-history":[{"count":3,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/posts\/13327\/revisions"}],"predecessor-version":[{"id":13400,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/posts\/13327\/revisions\/13400"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/media\/15510"}],"wp:attachment":[{"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/media?parent=13327"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/categories?post=13327"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/tags?post=13327"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}