{"id":5190,"date":"2026-11-01T12:40:00","date_gmt":"2026-11-01T12:40:00","guid":{"rendered":"https:\/\/zynoo.com\/blog\/?p=5190"},"modified":"2026-11-01T12:40:03","modified_gmt":"2026-11-01T12:40:03","slug":"nginx-reverse-proxy-ubuntu","status":"publish","type":"post","link":"https:\/\/zynoo.com\/blog\/nginx-reverse-proxy-ubuntu\/","title":{"rendered":"How to Set Up Nginx Reverse Proxy on Ubuntu"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\" id=\"h-\">An <strong>Nginx reverse proxy<\/strong> receives requests from website visitors and forwards them to another server or application. It&#8217;s commonly used to make applications running on ports such as 3000 accessible through a domain name, without exposing their internal ports to the internet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In this tutorial, you&#8217;ll configure Nginx on Ubuntu to forward requests to a local application, connect a domain, and enable HTTPS.<\/p>\n\n\n\n<h2 id=\"h-what-is-an-nginx-reverse-proxy\" class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"What_Is_an_Nginx_Reverse_Proxy\"><\/span>What Is an Nginx Reverse Proxy?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A reverse proxy sits between visitors and your backend application.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Instead of connecting directly to an application running on port 3000, visitors connect to Nginx on the standard HTTP or HTTPS ports.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nginx forwards the request to the application and returns its response.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The request flow looks like this:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>Visitor \u2192 Nginx \u2192 Backend Application<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This setup is commonly used for Node.js, Python, and other web applications. It can also support TLS termination, load balancing, and centralized request handling.<\/p>\n\n\n\n<div style=\"background:linear-gradient(110deg,#06347d,#0862d8);border-radius:10px;padding:20px 24px;margin:28px 0;color:#fff;font-family:inherit;\">\n  <div style=\"display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;\">\n    <div style=\"flex:1 1 230px;\">\n      <div style=\"font-size:17px;font-weight:700;line-height:1.4;margin-bottom:5px;\">\n        Need a VPS for Your Nginx Setup?\n      <\/div>\n      <div style=\"font-size:13px;line-height:1.6;color:#e1edff;\">\n        Deploy your applications with root access and flexible server resources.\n      <\/div>\n    <\/div>\n    <a href=\"https:\/\/zynoo.com\/vps-hosting.html\"\n       style=\"display:inline-block;background:#fff;color:#073b90;padding:11px 17px;border-radius:6px;font-size:13px;font-weight:700;text-decoration:none;white-space:nowrap;\">\n      Explore VPS Plans &rarr;\n    <\/a>\n  <\/div>\n<\/div>\n\n\n\n<h2 id=\"h-prerequisites\" class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Prerequisites\"><\/span>Prerequisites<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Before starting, you&#8217;ll need:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>An Ubuntu 24.04 LTS server with sudo access.<\/li>\n\n\n\n<li>SSH access to your server.<\/li>\n\n\n\n<li>A domain name pointing to your server&#8217;s public IP address.<\/li>\n\n\n\n<li>A backend application listening on a local port.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">We&#8217;ll use port <code>3000<\/code> in this example.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you&#8217;re new to SSH, read our <a href=\"https:\/\/zynoo.com\/blog\/ssh-commands\/\">SSH commands beginner&#8217;s guide<\/a> before continuing.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/zynoo.com\/blog\/wp-content\/uploads\/2026\/11\/How-to-setup-Nginx-Reverse-Proxy-1024x576.webp\" alt=\"How to setup Nginx Reverse Proxy\" class=\"wp-image-5191\" srcset=\"https:\/\/zynoo.com\/blog\/wp-content\/uploads\/2026\/11\/How-to-setup-Nginx-Reverse-Proxy-1024x576.webp 1024w, https:\/\/zynoo.com\/blog\/wp-content\/uploads\/2026\/11\/How-to-setup-Nginx-Reverse-Proxy-300x169.webp 300w, https:\/\/zynoo.com\/blog\/wp-content\/uploads\/2026\/11\/How-to-setup-Nginx-Reverse-Proxy-768x432.webp 768w, https:\/\/zynoo.com\/blog\/wp-content\/uploads\/2026\/11\/How-to-setup-Nginx-Reverse-Proxy-1536x864.webp 1536w, https:\/\/zynoo.com\/blog\/wp-content\/uploads\/2026\/11\/How-to-setup-Nginx-Reverse-Proxy.webp 1672w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 id=\"h-step-1-install-nginx-on-ubuntu\" class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Step_1_Install_Nginx_on_Ubuntu\"><\/span>Step 1: Install Nginx on Ubuntu<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Connect to your <a href=\"https:\/\/zynoo.com\/blog\/debian-vs-ubuntu-vps\/\">Ubuntu<\/a> server through SSH.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Update the package index and install Nginx:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update\nsudo apt install nginx -y<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Check whether Nginx is running:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl status nginx<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">You should see <code>active (running)<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If Nginx isn&#8217;t started, run:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl enable --now nginx<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">You can also visit your server&#8217;s public IP address in a browser. The default Nginx welcome page should appear if HTTP access is allowed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you&#8217;re using UFW, allow HTTP and HTTPS traffic:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw allow 'Nginx Full'<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Also check any firewall rules configured through your hosting provider. Don&#8217;t disable the firewall to make Nginx accessible.<\/p>\n\n\n\n<h2 id=\"h-step-2-start-a-test-backend-application\" class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Step_2_Start_a_Test_Backend_Application\"><\/span>Step 2: Start a Test Backend Application<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Before configuring the reverse proxy, we need an application for Nginx to forward requests to.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For a simple test, create a temporary directory:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir -p ~\/nginx-proxy-test\ncd ~\/nginx-proxy-test<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Create a basic HTML page:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>echo '&lt;h1&gt;Nginx Reverse Proxy Works!&lt;\/h1&gt;' &gt; index.html<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Now start Python&#8217;s built-in HTTP server:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>python3 -m http.server 3000 --bind 127.0.0.1<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This serves your test page on port 3000, accessible only through the local loopback address.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Leave this terminal running and open a second SSH session.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Verify that the application responds:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl http:\/\/127.0.0.1:3000<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">You should see:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;h1&gt;Nginx Reverse Proxy Works!&lt;\/h1&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This Python server is only for demonstration. For a production application, use its recommended application server and service-management setup.<\/p>\n\n\n\n<h2 id=\"h-step-3-create-an-nginx-reverse-proxy-configuration\" class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Step_3_Create_an_Nginx_Reverse_Proxy_Configuration\"><\/span>Step 3: Create an Nginx Reverse Proxy Configuration<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Create a new Nginx server block:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nano \/etc\/nginx\/sites-available\/app.example.com<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Replace <code>app.example.com<\/code> with your actual domain.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Add the following configuration:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>server {\n    listen 80;\n    server_name app.example.com;\n\n    location \/ {\n        proxy_pass http:\/\/127.0.0.1:3000;\n\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}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Save the file.<\/p>\n\n\n\n<h3 id=\"h-understanding-the-configuration\" class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Understanding_the_Configuration\"><\/span>Understanding the Configuration<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>listen 80<\/code> accepts HTTP requests.<\/li>\n\n\n\n<li><code>server_name<\/code> specifies the domain Nginx should handle.<\/li>\n\n\n\n<li><code>proxy_pass<\/code> forwards requests to the application on port 3000.<\/li>\n\n\n\n<li><code>proxy_set_header<\/code> passes useful information about the original request to the backend.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The backend must understand and safely handle forwarded headers. Only configure applications to trust these headers when requests arrive through your trusted proxy.<\/p>\n\n\n\n<h2 id=\"h-step-4-enable-and-test-the-configuration\" class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Step_4_Enable_and_Test_the_Configuration\"><\/span>Step 4: Enable and Test the Configuration<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Enable your new server block:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ln -s \/etc\/nginx\/sites-available\/app.example.com \/etc\/nginx\/sites-enabled\/<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If the link already exists, don&#8217;t recreate it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Check the configuration for errors:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nginx -t<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If the test succeeds, reload Nginx:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl reload nginx<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Now open:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>http:\/\/app.example.com<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If DNS is pointing to the correct server and the test backend is still running, you should see:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Nginx Reverse Proxy Works!<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If the default Nginx page appears instead, check your domain&#8217;s DNS records and <code>server_name<\/code> configuration.<\/p>\n\n\n\n<h2 id=\"h-step-5-enable-https-with-let-s-encrypt\" class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Step_5_Enable_HTTPS_with_Lets_Encrypt\"><\/span>Step 5: Enable HTTPS with Let&#8217;s Encrypt<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For a public website, use HTTPS rather than leaving traffic unencrypted.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">First, confirm your domain resolves to the correct server and that inbound port 80 is accessible. These are important for the standard HTTP certificate-validation process.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Install Certbot using the official Snap-based approach:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo snap install --classic certbot<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If the <code>certbot<\/code> command isn&#8217;t already available, create the command link:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ln -s \/snap\/bin\/certbot \/usr\/local\/bin\/certbot<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Then request a certificate:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo certbot --nginx -d app.example.com<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Follow the prompts. Certbot can obtain a certificate and configure Nginx to serve your domain over HTTPS.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Afterward, test certificate renewal:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo certbot renew --dry-run<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Visit:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>https:&#47;&#47;app.example.com<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Your test application should now load through an encrypted connection.<\/p>\n\n\n\n<h2 id=\"h-step-6-verify-your-reverse-proxy\" class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Step_6_Verify_Your_Reverse_Proxy\"><\/span>Step 6: Verify Your Reverse Proxy<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Check the HTTPS response:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl -I https:\/\/app.example.com<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">For the example Python backend, an HTTP <code>200 OK<\/code> response indicates that the request reached the application successfully.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You can also check which processes are listening on your server:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ss -ltnp<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Your Nginx installation should listen on the configured public HTTP and HTTPS ports, while the example backend listens on <code>127.0.0.1:3000<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Remember that the temporary Python server will stop when you terminate its terminal session. Production applications should run under a process supervisor such as systemd.<\/p>\n\n\n\n<h2 id=\"h-common-nginx-reverse-proxy-problems\" class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Common_Nginx_Reverse_Proxy_Problems\"><\/span>Common Nginx Reverse Proxy Problems<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 id=\"h-502-bad-gateway\" class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"502_Bad_Gateway\"><\/span>502 Bad Gateway<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This usually means Nginx couldn&#8217;t receive a valid response from the backend.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Check that your application is running and that the port in <code>proxy_pass<\/code> is correct.<\/p>\n\n\n\n<div class=\"wp-block-group zynoo-related-reading has-border-color has-text-color has-background is-layout-flow wp-block-group-is-layout-flow\" style=\"border-color:#c7d8ef;border-width:1px;border-radius:8px;border-left-color:#0069ff;border-left-width:3px;color:#24364f;background-color:#eaf2ff;margin-top:28px;margin-bottom:28px;padding-top:18px;padding-right:22px;padding-bottom:18px;padding-left:22px;font-size:16px;line-height:1.8\">\n<p class=\"wp-block-paragraph\"><strong>Our guide<\/strong> to <a href=\"https:\/\/zynoo.com\/blog\/502-bad-gateway-nginx\/\">fixing 502 Bad Gateway in Nginx<\/a> covers logs, upstream services, and connection problems in more detail.<\/p>\n<\/div>\n\n\n\n<h3 id=\"h-504-gateway-timeout\" class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"504_Gateway_Timeout\"><\/span>504 Gateway Timeout<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A 504 error occurs when the gateway doesn&#8217;t receive the required upstream response in time.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Investigate slow application requests and backend performance before increasing timeouts.<\/p>\n\n\n\n<div class=\"wp-block-group zynoo-related-reading has-border-color has-text-color has-background is-layout-flow wp-block-group-is-layout-flow\" style=\"border-color:#c7d8ef;border-width:1px;border-radius:8px;border-left-color:#0069ff;border-left-width:3px;color:#24364f;background-color:#eaf2ff;margin-top:28px;margin-bottom:28px;padding-top:18px;padding-right:22px;padding-bottom:18px;padding-left:22px;font-size:16px;line-height:1.8\">\n<p class=\"wp-block-paragraph\"><strong>See our<\/strong> <a href=\"https:\/\/zynoo.com\/blog\/504-gateway-timeout\/\">504 Gateway Timeout troubleshooting guide<\/a> for further instructions.<\/p>\n<\/div>\n\n\n\n<h3 id=\"h-the-domain-doesn-t-load\" class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"The_Domain_Doesnt_Load\"><\/span>The Domain Doesn&#8217;t Load<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Check that your domain&#8217;s A record points to the correct public IP address, the relevant firewall ports are open, and the Nginx server block matches the requested hostname.<\/p>\n\n\n\n<h2 id=\"h-frequently-asked-questions\" class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Frequently_Asked_Questions\"><\/span>Frequently Asked Questions<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<div class=\"schema-faq wp-block-yoast-faq-block\"><div class=\"schema-faq-section\" id=\"faq-question-1793536198078\"><strong class=\"schema-faq-question\">What is proxy_pass in Nginx?<\/strong> <p class=\"schema-faq-answer\">proxy_pass tells Nginx where to forward requests, such as an HTTP application running on 127.0.0.1:3000.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1793536226833\"><strong class=\"schema-faq-question\">Can Nginx reverse proxy multiple applications?<\/strong> <p class=\"schema-faq-answer\">Yes. You can configure separate domains, subdomains, or URL paths to forward requests to different backend applications.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1793536270612\"><strong class=\"schema-faq-question\">Do I need a domain for an Nginx reverse proxy?<\/strong> <p class=\"schema-faq-answer\">No. You can test a reverse proxy with an IP address or locally. However, a domain makes public hosting and obtaining a standard HTTPS certificate more straightforward.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1793536281086\"><strong class=\"schema-faq-question\">Is Nginx reverse proxy free?<\/strong> <p class=\"schema-faq-answer\">Yes. Open-source Nginx supports reverse proxy functionality without requiring a commercial license.<\/p> <\/div> <\/div>\n\n\n\n<h2 id=\"h-conclusion\" class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Conclusion\"><\/span>Conclusion<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">You&#8217;ve configured an Nginx reverse proxy on Ubuntu, forwarded requests to a local application, and enabled HTTPS.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The same basic configuration can be adapted for Node.js, <a href=\"https:\/\/www.python.org\/downloads\/\">Python<\/a>, and other HTTP-based applications by updating the backend address in <code>proxy_pass<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Before using the setup in production, ensure your application starts automatically, runs under appropriate permissions, and has adequate monitoring and security controls.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>An Nginx reverse proxy receives requests from website visitors and forwards them to another server or application. It&#8217;s commonly used to make applications running on ports such as 3000 accessible through a domain name, without exposing their internal ports to the internet. In this tutorial, you&#8217;ll configure Nginx on Ubuntu to forward requests to a [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":5192,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"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":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"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":""},"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-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":"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":""},"mobile":{"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":""}},"footnotes":""},"categories":[499],"tags":[14],"class_list":["post-5190","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux-tutorials","tag-how-to"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.4 (Yoast SEO v28.8) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>How to Set Up Nginx Reverse Proxy on Ubuntu<\/title>\n<meta name=\"description\" content=\"Learn how to set up an Nginx reverse proxy on Ubuntu, configure proxy_pass, connect your domain, enable HTTPS, and test your application.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/zynoo.com\/blog\/nginx-reverse-proxy-ubuntu\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Set Up Nginx Reverse Proxy on Ubuntu\" \/>\n<meta property=\"og:description\" content=\"Learn how to set up an Nginx reverse proxy on Ubuntu, configure proxy_pass, connect your domain, enable HTTPS, and test your application.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/zynoo.com\/blog\/nginx-reverse-proxy-ubuntu\/\" \/>\n<meta property=\"og:site_name\" content=\"ZYNOO Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-11-01T12:40:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-11-01T12:40:03+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/zynoo.com\/blog\/wp-content\/uploads\/2026\/11\/Nginx-Reverse-Proxy.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1672\" \/>\n\t<meta property=\"og:image:height\" content=\"941\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Jamie Collins\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jamie Collins\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"TechArticle\",\"@id\":\"https:\\\/\\\/zynoo.com\\\/blog\\\/nginx-reverse-proxy-ubuntu\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zynoo.com\\\/blog\\\/nginx-reverse-proxy-ubuntu\\\/\"},\"author\":{\"name\":\"Jamie Collins\",\"@id\":\"https:\\\/\\\/zynoo.com\\\/blog\\\/#\\\/schema\\\/person\\\/075b85b8be75fb370da34891a96e7eba\"},\"headline\":\"How to Set Up Nginx Reverse Proxy on Ubuntu\",\"datePublished\":\"2026-11-01T12:40:00+00:00\",\"dateModified\":\"2026-11-01T12:40:03+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/zynoo.com\\\/blog\\\/nginx-reverse-proxy-ubuntu\\\/\"},\"wordCount\":1018,\"publisher\":{\"@id\":\"https:\\\/\\\/zynoo.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/zynoo.com\\\/blog\\\/nginx-reverse-proxy-ubuntu\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/zynoo.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/Nginx-Reverse-Proxy.webp\",\"keywords\":[\"how to\"],\"articleSection\":[\"Linux Tutorials\"],\"inLanguage\":\"en-US\"},{\"@type\":[\"WebPage\",\"FAQPage\"],\"@id\":\"https:\\\/\\\/zynoo.com\\\/blog\\\/nginx-reverse-proxy-ubuntu\\\/\",\"url\":\"https:\\\/\\\/zynoo.com\\\/blog\\\/nginx-reverse-proxy-ubuntu\\\/\",\"name\":\"How to Set Up Nginx Reverse Proxy on Ubuntu\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zynoo.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/zynoo.com\\\/blog\\\/nginx-reverse-proxy-ubuntu\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/zynoo.com\\\/blog\\\/nginx-reverse-proxy-ubuntu\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/zynoo.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/Nginx-Reverse-Proxy.webp\",\"datePublished\":\"2026-11-01T12:40:00+00:00\",\"dateModified\":\"2026-11-01T12:40:03+00:00\",\"description\":\"Learn how to set up an Nginx reverse proxy on Ubuntu, configure proxy_pass, connect your domain, enable HTTPS, and test your application.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/zynoo.com\\\/blog\\\/nginx-reverse-proxy-ubuntu\\\/#breadcrumb\"},\"mainEntity\":[{\"@id\":\"https:\\\/\\\/zynoo.com\\\/blog\\\/nginx-reverse-proxy-ubuntu\\\/#faq-question-1793536198078\"},{\"@id\":\"https:\\\/\\\/zynoo.com\\\/blog\\\/nginx-reverse-proxy-ubuntu\\\/#faq-question-1793536226833\"},{\"@id\":\"https:\\\/\\\/zynoo.com\\\/blog\\\/nginx-reverse-proxy-ubuntu\\\/#faq-question-1793536270612\"},{\"@id\":\"https:\\\/\\\/zynoo.com\\\/blog\\\/nginx-reverse-proxy-ubuntu\\\/#faq-question-1793536281086\"}],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/zynoo.com\\\/blog\\\/nginx-reverse-proxy-ubuntu\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/zynoo.com\\\/blog\\\/nginx-reverse-proxy-ubuntu\\\/#primaryimage\",\"url\":\"https:\\\/\\\/zynoo.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/Nginx-Reverse-Proxy.webp\",\"contentUrl\":\"https:\\\/\\\/zynoo.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/Nginx-Reverse-Proxy.webp\",\"width\":1672,\"height\":941,\"caption\":\"Nginx Reverse Proxy\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/zynoo.com\\\/blog\\\/nginx-reverse-proxy-ubuntu\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/zynoo.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Linux Tutorials\",\"item\":\"https:\\\/\\\/zynoo.com\\\/blog\\\/category\\\/linux-tutorials\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"How to Set Up Nginx Reverse Proxy on Ubuntu\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/zynoo.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/zynoo.com\\\/blog\\\/\",\"name\":\"Zynoo Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/zynoo.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/zynoo.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/zynoo.com\\\/blog\\\/#organization\",\"name\":\"ZYNOO\",\"url\":\"https:\\\/\\\/zynoo.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/zynoo.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/zynoo.com\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/08\\\/logo.png\",\"contentUrl\":\"https:\\\/\\\/zynoo.com\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/08\\\/logo.png\",\"width\":149,\"height\":31,\"caption\":\"ZYNOO\"},\"image\":{\"@id\":\"https:\\\/\\\/zynoo.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/zynoo.com\\\/blog\\\/#\\\/schema\\\/person\\\/075b85b8be75fb370da34891a96e7eba\",\"name\":\"Jamie Collins\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c9359158623ddee86ac8561e84de70f78b722c1d9018dd61d611ae19118a2d76?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c9359158623ddee86ac8561e84de70f78b722c1d9018dd61d611ae19118a2d76?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c9359158623ddee86ac8561e84de70f78b722c1d9018dd61d611ae19118a2d76?s=96&d=mm&r=g\",\"caption\":\"Jamie Collins\"},\"description\":\"Jamie Collins is a content writer with over 5+ years of experience in web hosting. He specializes in creating simple, practical guides that help readers understand hosting and make smarter online choices.\",\"sameAs\":[\"https:\\\/\\\/zynoo.com\\\/blog\\\/\"],\"url\":\"https:\\\/\\\/zynoo.com\\\/blog\\\/author\\\/willy\\\/\"},{\"@type\":\"Question\",\"@id\":\"https:\\\/\\\/zynoo.com\\\/blog\\\/nginx-reverse-proxy-ubuntu\\\/#faq-question-1793536198078\",\"position\":1,\"url\":\"https:\\\/\\\/zynoo.com\\\/blog\\\/nginx-reverse-proxy-ubuntu\\\/#faq-question-1793536198078\",\"name\":\"What is proxy_pass in Nginx?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"proxy_pass tells Nginx where to forward requests, such as an HTTP application running on 127.0.0.1:3000.\",\"inLanguage\":\"en-US\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Question\",\"@id\":\"https:\\\/\\\/zynoo.com\\\/blog\\\/nginx-reverse-proxy-ubuntu\\\/#faq-question-1793536226833\",\"position\":2,\"url\":\"https:\\\/\\\/zynoo.com\\\/blog\\\/nginx-reverse-proxy-ubuntu\\\/#faq-question-1793536226833\",\"name\":\"Can Nginx reverse proxy multiple applications?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes. You can configure separate domains, subdomains, or URL paths to forward requests to different backend applications.\",\"inLanguage\":\"en-US\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Question\",\"@id\":\"https:\\\/\\\/zynoo.com\\\/blog\\\/nginx-reverse-proxy-ubuntu\\\/#faq-question-1793536270612\",\"position\":3,\"url\":\"https:\\\/\\\/zynoo.com\\\/blog\\\/nginx-reverse-proxy-ubuntu\\\/#faq-question-1793536270612\",\"name\":\"Do I need a domain for an Nginx reverse proxy?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No. You can test a reverse proxy with an IP address or locally. However, a domain makes public hosting and obtaining a standard HTTPS certificate more straightforward.\",\"inLanguage\":\"en-US\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Question\",\"@id\":\"https:\\\/\\\/zynoo.com\\\/blog\\\/nginx-reverse-proxy-ubuntu\\\/#faq-question-1793536281086\",\"position\":4,\"url\":\"https:\\\/\\\/zynoo.com\\\/blog\\\/nginx-reverse-proxy-ubuntu\\\/#faq-question-1793536281086\",\"name\":\"Is Nginx reverse proxy free?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes. Open-source Nginx supports reverse proxy functionality without requiring a commercial license.\",\"inLanguage\":\"en-US\"},\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to Set Up Nginx Reverse Proxy on Ubuntu","description":"Learn how to set up an Nginx reverse proxy on Ubuntu, configure proxy_pass, connect your domain, enable HTTPS, and test your application.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/zynoo.com\/blog\/nginx-reverse-proxy-ubuntu\/","og_locale":"en_US","og_type":"article","og_title":"How to Set Up Nginx Reverse Proxy on Ubuntu","og_description":"Learn how to set up an Nginx reverse proxy on Ubuntu, configure proxy_pass, connect your domain, enable HTTPS, and test your application.","og_url":"https:\/\/zynoo.com\/blog\/nginx-reverse-proxy-ubuntu\/","og_site_name":"ZYNOO Blog","article_published_time":"2026-11-01T12:40:00+00:00","article_modified_time":"2026-11-01T12:40:03+00:00","og_image":[{"width":1672,"height":941,"url":"https:\/\/zynoo.com\/blog\/wp-content\/uploads\/2026\/11\/Nginx-Reverse-Proxy.webp","type":"image\/webp"}],"author":"Jamie Collins","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Jamie Collins","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"TechArticle","@id":"https:\/\/zynoo.com\/blog\/nginx-reverse-proxy-ubuntu\/#article","isPartOf":{"@id":"https:\/\/zynoo.com\/blog\/nginx-reverse-proxy-ubuntu\/"},"author":{"name":"Jamie Collins","@id":"https:\/\/zynoo.com\/blog\/#\/schema\/person\/075b85b8be75fb370da34891a96e7eba"},"headline":"How to Set Up Nginx Reverse Proxy on Ubuntu","datePublished":"2026-11-01T12:40:00+00:00","dateModified":"2026-11-01T12:40:03+00:00","mainEntityOfPage":{"@id":"https:\/\/zynoo.com\/blog\/nginx-reverse-proxy-ubuntu\/"},"wordCount":1018,"publisher":{"@id":"https:\/\/zynoo.com\/blog\/#organization"},"image":{"@id":"https:\/\/zynoo.com\/blog\/nginx-reverse-proxy-ubuntu\/#primaryimage"},"thumbnailUrl":"https:\/\/zynoo.com\/blog\/wp-content\/uploads\/2026\/11\/Nginx-Reverse-Proxy.webp","keywords":["how to"],"articleSection":["Linux Tutorials"],"inLanguage":"en-US"},{"@type":["WebPage","FAQPage"],"@id":"https:\/\/zynoo.com\/blog\/nginx-reverse-proxy-ubuntu\/","url":"https:\/\/zynoo.com\/blog\/nginx-reverse-proxy-ubuntu\/","name":"How to Set Up Nginx Reverse Proxy on Ubuntu","isPartOf":{"@id":"https:\/\/zynoo.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/zynoo.com\/blog\/nginx-reverse-proxy-ubuntu\/#primaryimage"},"image":{"@id":"https:\/\/zynoo.com\/blog\/nginx-reverse-proxy-ubuntu\/#primaryimage"},"thumbnailUrl":"https:\/\/zynoo.com\/blog\/wp-content\/uploads\/2026\/11\/Nginx-Reverse-Proxy.webp","datePublished":"2026-11-01T12:40:00+00:00","dateModified":"2026-11-01T12:40:03+00:00","description":"Learn how to set up an Nginx reverse proxy on Ubuntu, configure proxy_pass, connect your domain, enable HTTPS, and test your application.","breadcrumb":{"@id":"https:\/\/zynoo.com\/blog\/nginx-reverse-proxy-ubuntu\/#breadcrumb"},"mainEntity":[{"@id":"https:\/\/zynoo.com\/blog\/nginx-reverse-proxy-ubuntu\/#faq-question-1793536198078"},{"@id":"https:\/\/zynoo.com\/blog\/nginx-reverse-proxy-ubuntu\/#faq-question-1793536226833"},{"@id":"https:\/\/zynoo.com\/blog\/nginx-reverse-proxy-ubuntu\/#faq-question-1793536270612"},{"@id":"https:\/\/zynoo.com\/blog\/nginx-reverse-proxy-ubuntu\/#faq-question-1793536281086"}],"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/zynoo.com\/blog\/nginx-reverse-proxy-ubuntu\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/zynoo.com\/blog\/nginx-reverse-proxy-ubuntu\/#primaryimage","url":"https:\/\/zynoo.com\/blog\/wp-content\/uploads\/2026\/11\/Nginx-Reverse-Proxy.webp","contentUrl":"https:\/\/zynoo.com\/blog\/wp-content\/uploads\/2026\/11\/Nginx-Reverse-Proxy.webp","width":1672,"height":941,"caption":"Nginx Reverse Proxy"},{"@type":"BreadcrumbList","@id":"https:\/\/zynoo.com\/blog\/nginx-reverse-proxy-ubuntu\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/zynoo.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Linux Tutorials","item":"https:\/\/zynoo.com\/blog\/category\/linux-tutorials\/"},{"@type":"ListItem","position":3,"name":"How to Set Up Nginx Reverse Proxy on Ubuntu"}]},{"@type":"WebSite","@id":"https:\/\/zynoo.com\/blog\/#website","url":"https:\/\/zynoo.com\/blog\/","name":"Zynoo Blog","description":"","publisher":{"@id":"https:\/\/zynoo.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/zynoo.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/zynoo.com\/blog\/#organization","name":"ZYNOO","url":"https:\/\/zynoo.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/zynoo.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/zynoo.com\/blog\/wp-content\/uploads\/2025\/08\/logo.png","contentUrl":"https:\/\/zynoo.com\/blog\/wp-content\/uploads\/2025\/08\/logo.png","width":149,"height":31,"caption":"ZYNOO"},"image":{"@id":"https:\/\/zynoo.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/zynoo.com\/blog\/#\/schema\/person\/075b85b8be75fb370da34891a96e7eba","name":"Jamie Collins","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/c9359158623ddee86ac8561e84de70f78b722c1d9018dd61d611ae19118a2d76?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/c9359158623ddee86ac8561e84de70f78b722c1d9018dd61d611ae19118a2d76?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c9359158623ddee86ac8561e84de70f78b722c1d9018dd61d611ae19118a2d76?s=96&d=mm&r=g","caption":"Jamie Collins"},"description":"Jamie Collins is a content writer with over 5+ years of experience in web hosting. He specializes in creating simple, practical guides that help readers understand hosting and make smarter online choices.","sameAs":["https:\/\/zynoo.com\/blog\/"],"url":"https:\/\/zynoo.com\/blog\/author\/willy\/"},{"@type":"Question","@id":"https:\/\/zynoo.com\/blog\/nginx-reverse-proxy-ubuntu\/#faq-question-1793536198078","position":1,"url":"https:\/\/zynoo.com\/blog\/nginx-reverse-proxy-ubuntu\/#faq-question-1793536198078","name":"What is proxy_pass in Nginx?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"proxy_pass tells Nginx where to forward requests, such as an HTTP application running on 127.0.0.1:3000.","inLanguage":"en-US"},"inLanguage":"en-US"},{"@type":"Question","@id":"https:\/\/zynoo.com\/blog\/nginx-reverse-proxy-ubuntu\/#faq-question-1793536226833","position":2,"url":"https:\/\/zynoo.com\/blog\/nginx-reverse-proxy-ubuntu\/#faq-question-1793536226833","name":"Can Nginx reverse proxy multiple applications?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"Yes. You can configure separate domains, subdomains, or URL paths to forward requests to different backend applications.","inLanguage":"en-US"},"inLanguage":"en-US"},{"@type":"Question","@id":"https:\/\/zynoo.com\/blog\/nginx-reverse-proxy-ubuntu\/#faq-question-1793536270612","position":3,"url":"https:\/\/zynoo.com\/blog\/nginx-reverse-proxy-ubuntu\/#faq-question-1793536270612","name":"Do I need a domain for an Nginx reverse proxy?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"No. You can test a reverse proxy with an IP address or locally. However, a domain makes public hosting and obtaining a standard HTTPS certificate more straightforward.","inLanguage":"en-US"},"inLanguage":"en-US"},{"@type":"Question","@id":"https:\/\/zynoo.com\/blog\/nginx-reverse-proxy-ubuntu\/#faq-question-1793536281086","position":4,"url":"https:\/\/zynoo.com\/blog\/nginx-reverse-proxy-ubuntu\/#faq-question-1793536281086","name":"Is Nginx reverse proxy free?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"Yes. Open-source Nginx supports reverse proxy functionality without requiring a commercial license.","inLanguage":"en-US"},"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/zynoo.com\/blog\/wp-json\/wp\/v2\/posts\/5190","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zynoo.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zynoo.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zynoo.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/zynoo.com\/blog\/wp-json\/wp\/v2\/comments?post=5190"}],"version-history":[{"count":2,"href":"https:\/\/zynoo.com\/blog\/wp-json\/wp\/v2\/posts\/5190\/revisions"}],"predecessor-version":[{"id":5194,"href":"https:\/\/zynoo.com\/blog\/wp-json\/wp\/v2\/posts\/5190\/revisions\/5194"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/zynoo.com\/blog\/wp-json\/wp\/v2\/media\/5192"}],"wp:attachment":[{"href":"https:\/\/zynoo.com\/blog\/wp-json\/wp\/v2\/media?parent=5190"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zynoo.com\/blog\/wp-json\/wp\/v2\/categories?post=5190"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zynoo.com\/blog\/wp-json\/wp\/v2\/tags?post=5190"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}