{"id":15521,"date":"2025-08-01T18:23:39","date_gmt":"2025-08-01T12:53:39","guid":{"rendered":"https:\/\/www.skynats.com\/?p=15521"},"modified":"2025-09-01T16:50:57","modified_gmt":"2025-09-01T11:20:57","slug":"how-to-install-envoy-on-ubuntu-24","status":"publish","type":"post","link":"https:\/\/www.skynats.com\/blog\/how-to-install-envoy-on-ubuntu-24\/","title":{"rendered":"How to Install envoy on Ubuntu 24"},"content":{"rendered":"\n<ul class=\"wp-block-list\">\n<li>Installing Envoy on Ubuntu 24 gives you access to a modern, high-performance edge and service proxy, comparable to NGINX or HAProxy.<\/li>\n\n\n\n<li>Built in C++, it supports HTTP\/2, gRPC, advanced load\u2011balancing and observability&nbsp;<\/li>\n\n\n\n<li>Many large tech companies use Envoy in production<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading has-small-font-size\" id=\"h-installing-envoy-proxy-nbsp\"><strong>Installing Envoy Proxy&nbsp;<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">First, make sure your package index is up to date, and install necessary dependencies:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update &amp;&amp; sudo apt upgrade -y\nsudo apt install apt-transport-https curl gnupg2 lsb-release ca-certificates -y<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading has-small-font-size\" id=\"h-nbsp-add-envoy-s-gpg-signing-key\"><strong>&nbsp;Add Envoy\u2019s GPG Signing Key<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Fetch and import the key directly into a secure keyring.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>wget -O- https:\/\/apt.envoyproxy.io\/signing.key \\\n  | sudo gpg --dearmor -o \/etc\/apt\/keyrings\/envoy-keyring.gpg<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This ensures APT can verify packages from the official Envoy repository<\/p>\n\n\n\n<h3 class=\"wp-block-heading has-small-font-size\" id=\"h-add-the-envoy-apt-repository\"><strong> Add the Envoy APT Repository<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Set up the proper repository line for Bookworm:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>echo \"deb &#91;arch=$(dpkg --print-architecture) \\\nsigned-by=\/etc\/apt\/keyrings\/envoy-keyring.gpg] \\\nhttps:\/\/apt.envoyproxy.io bookworm main\" \\\n  | sudo tee \/etc\/apt\/sources.list.d\/envoy.list<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This enables Debian to fetch Envoy packages directly from the official source<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-small-font-size\" id=\"h-update-and-install-envoy\"><strong>Update and Install Envoy<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Update the package list and install Envoy using:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt-get update\nsudo apt-get install envoy<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Once installed, verify the installation:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><em>envoy --version<\/em><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If all is correct, Envoy should display its version.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Configuration<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Vim \/etc\/envoy\/demo.yaml:<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">static_resources:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">listeners:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8211; name: main_listener<\/p>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\">address:<\/p>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\">socket_address: { address: 0.0.0.0, port_value: 8080 }<\/p>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\">filter_chains:<\/p>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\">&#8211; filters:<\/p>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\">&#8211; name: envoy.filters.network.http_connection_manager<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;typed_config:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;&#8220;@type&#8221;: type.googleapis.com\/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">stat_prefix: ingress_http<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">access_log:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8211; name: envoy.access_loggers.stdout<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;typed_config:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;&#8220;@type&#8221;: type.googleapis.com\/envoy.extensions.access_loggers.stream.v3.StdoutAccessLog<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;route_config:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;name: local_route<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;&nbsp;virtual_hosts:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8211; name: local_service<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;domains: [&#8220;*&#8221;]<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;&nbsp;routes:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8211; match: { prefix: &#8220;\/&#8221; }<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;route: { cluster: backend }<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">http_filters:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;&#8211; name: envoy.filters.http.router<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">clusters:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8211; name: backend<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">connect_timeout: 0.5s<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">type: STATIC<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">load_assignment:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">cluster_name: backend<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">endpoints:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8211; lb_endpoints:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;&#8211; endpoint:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">address:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;socket_address: { address: 127.0.0.1, port_value: 3000 }<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you start a minimal HTTP server with:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>python3 -m http.server 3000<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Envoy is configured to forward requests to that backend on port\u202f3000, then:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>curl <\/em><a href=\"http:\/\/localhost:8080\" target=\"_blank\" rel=\"noopener\"><em>http:\/\/localhost:8080<\/em><\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Envoy will proxy the request to your Python HTTP server, which by default serves files from the current directory. If an index.html file exists, it returns its contents.<\/p>\n\n\n\n<h3 class=\"wp-block-heading has-small-font-size\" id=\"h-conclusion\"><strong>Conclusion<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.envoyproxy.io\/\" target=\"_blank\" rel=\"noopener\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-secondary-color\">Envoy Proxy<\/mark><\/a> is a powerful and efficient tool designed to handle the challenges of modern microservices systems.Its advanced features, such as dynamic traffic routing, observability, and robust security mechanisms, make it an essential component for building resilient and scalable cloud native applications.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you face any challenges while installing Envoy on Ubuntu 24 or need help configuring it for production use, our expert team is here to assist. At Skynats, we offer reliable <a href=\"https:\/\/www.skynats.com\/server-management\/\">Server Management Services<\/a> to ensure your servers and proxy tools like Envoy are installed, secured, and optimized for performance.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.skynats.com\/blog\/\">Contact us<\/a> today to get professional support and streamline your infrastructure with ease.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Installing Envoy Proxy&nbsp; First, make sure your package index is up to date, and install necessary dependencies: &nbsp;Add Envoy\u2019s GPG Signing Key Fetch and import the key directly into a secure keyring. This ensures APT can verify packages from the official Envoy repository Add the Envoy APT Repository Set up the proper repository line for [&hellip;]<\/p>\n","protected":false},"author":12,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-15521","post","type-post","status-publish","format-standard","hentry","category-blog"],"_links":{"self":[{"href":"https:\/\/www.skynats.com\/blog\/wp-json\/wp\/v2\/posts\/15521","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.skynats.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.skynats.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.skynats.com\/blog\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/www.skynats.com\/blog\/wp-json\/wp\/v2\/comments?post=15521"}],"version-history":[{"count":3,"href":"https:\/\/www.skynats.com\/blog\/wp-json\/wp\/v2\/posts\/15521\/revisions"}],"predecessor-version":[{"id":15691,"href":"https:\/\/www.skynats.com\/blog\/wp-json\/wp\/v2\/posts\/15521\/revisions\/15691"}],"wp:attachment":[{"href":"https:\/\/www.skynats.com\/blog\/wp-json\/wp\/v2\/media?parent=15521"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.skynats.com\/blog\/wp-json\/wp\/v2\/categories?post=15521"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.skynats.com\/blog\/wp-json\/wp\/v2\/tags?post=15521"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}