Skip to content
Nginx Web Server product logo
  • AWSAvailable on Amazon Web Services
  • AzureAvailable on Microsoft Azure
  • GCP· nextGoogle Cloud is next on the roadmap
Available

Nginx Web Server

nginx 1.30.4 from the official nginx.org stable repository, tuned for production and verified in effect - worker limits, BBR, gzip, open-file cache, TLS 1.2/1.3 with OCSP stapling, HTTP/2 on for every site - with free Let's Encrypt HTTPS one command away. No PHP, no database, no control panel: a web server and nothing else.

Version
v1.30.4
Operating system
Ubuntu 24.04 LTS
Architecture
x86_64
Support
Email support

What's installed

Every package and version on the image, identical on every cloud it ships on. Nothing else is installed.

  • nginx 1.30.4 (nginx.org stable)
  • certbot 2.9.0 with nginx plugin
  • apache2-utils (htpasswd, ab)

LicensingOpen source (BSD-2-Clause), no licence key required

Deploy anywhere

Nginx Web Server on AWS and Azure.

Google Cloud is next on the roadmap. One clean-room build, one first-boot credential model, one patch cadence — identical on every cloud you run. Every identifier below is the real one; copy it and launch.

  1. AWS
    Available

    Amazon Web Services

    AMI · v1.30.4

    AWS AMI ID

    Shown for your region on the AWS Marketplace launch page once you subscribe.

    Released
    Root volume
    gp3 · 20 GiB
    Instance types
    • t3a.small
    • t3a.medium
    • t3.medium
    • c7a.large
    Regions34 regions· show all
    • us-east-1
    • af-south-1
    • ap-east-1
    • ap-east-2
    • ap-northeast-1
    • ap-northeast-2
    • ap-northeast-3
    • ap-south-1
    • ap-south-2
    • ap-southeast-1
    • ap-southeast-2
    • ap-southeast-3
    • ap-southeast-4
    • ap-southeast-5
    • ap-southeast-6
    • ap-southeast-7
    • ca-central-1
    • ca-west-1
    • eu-central-1
    • eu-central-2
    • eu-north-1
    • eu-south-1
    • eu-south-2
    • eu-west-1
    • eu-west-2
    • eu-west-3
    • il-central-1
    • me-central-1
    • me-south-1
    • mx-central-1
    • sa-east-1
    • us-east-2
    • us-west-1
    • us-west-2

    5-day free trial, then from $0.02/hr software charge (larger instance sizes cost more) plus your own EC2 costs, billed by AWS.

    Subscriptions are open to AWS India (AISPL) accounts. Outside India? Ask us for a private build.

  2. Azure
    Available

    Microsoft Azure

    Compute Gallery image · v1.30.5

    Azure Compute Gallery image ID

    Selected for you when you create the VM from the Azure Marketplace listing.

    Released
    OS disk
    Premium_LRS · 30 GiB
    VM sizes
    • Standard_D2as_v7
    • Standard_D2as_v5
    • Standard_B2ms
    • Standard_D4as_v7
    Regions50 regions· show all
    • eastus
    • australiacentral
    • australiaeast
    • australiasoutheast
    • austriaeast
    • belgiumcentral
    • brazilsouth
    • canadacentral
    • canadaeast
    • centralindia
    • centralus
    • chilecentral
    • denmarkeast
    • eastasia
    • eastus2
    • francecentral
    • germanywestcentral
    • indiasouthcentral
    • indonesiacentral
    • israelcentral
    • italynorth
    • japaneast
    • japanwest
    • jioindiawest
    • koreacentral
    • koreasouth
    • malaysiawest
    • mexicocentral
    • newzealandnorth
    • northcentralus
    • northeurope
    • norwayeast
    • polandcentral
    • qatarcentral
    • southafricanorth
    • southcentralus
    • southeastasia
    • southindia
    • spaincentral
    • swedencentral
    • switzerlandnorth
    • uaenorth
    • uksouth
    • ukwest
    • westcentralus
    • westeurope
    • westindia
    • westus
    • westus2
    • westus3
AWS

Getting started on Amazon Web Services

From launch to signed in, step by step.

  1. Subscribe on AWS Marketplace and launch in your region with TCP 22, 80 and 443 open; wait about two minutes.

  2. Open http://<instance-public-ip>/ for the welcome page. /healthz returns 200 ok; /nginx_status is protected with username admin and your EC2 Instance ID (for example i-0123456789abcdef0).

  3. SSH as ubuntu with your key pair. Add a site with sudo bash /home/ubuntu/iscripts/add_site.sh (static files or reverse proxy).

  4. Point your domain's A record at the instance, then sudo bash /home/ubuntu/iscripts/setup_ssl.sh - it verifies DNS and the ACME challenge before contacting Let's Encrypt, offers a staging rehearsal, and renewal is automatic.

  5. Include the ready-made snippets from your own sites: /etc/nginx/snippets/security-headers.conf, static-cache.conf, proxy-params.conf. Check with sudo nginx -t, apply with sudo systemctl reload nginx.

Security posture

What this AWS image does and does not ship with, one fact per line.

  • Clean-room build on Canonical's official Ubuntu 24.04 LTS image: every component comes from its own official repository or release, nothing is copied from any third-party image, and the finished image was scanned for third-party vendor strings before capture.

  • No usable credential ships in the image; passwords are set on your instance at first boot from EC2 instance metadata (IMDSv2) and the scripts that set them delete themselves afterwards.

  • SSH is key-only, root login over SSH is refused, and build-time SSH keys, shell history and logs were removed before imaging.

  • The nginx.org repository is pinned at apt priority 900 so a routine upgrade can never swap in Ubuntu's older 1.24 package.

  • The version number is hidden, dotfiles such as .git and .env are refused with 403, and security headers are set on every response including error pages; rate-limit zones are defined and ready to apply.

  • The /nginx_status password is set from the Instance ID at first boot, replacing a 40-character random value generated during cleanup and discarded, so an instance that has not yet provisioned has no guessable credential.

  • TLS is 1.2/1.3 only with session tickets off to preserve forward secrecy.

  • Nothing else listens: no PHP, no database, no admin panel.

Azure

Getting started on Microsoft Azure

From launch to signed in, step by step.

  1. Create the VM from the Azure Marketplace listing with TCP 22, 80 and 443 open in your network security group - add UDP 443 too if you want HTTP/3. Choose ubuntu as the administrator username so SSH and the script paths match. Wait about two minutes for first boot.

  2. Open http://<vm-public-ip>/ for the welcome page. Live connection counters are at /nginx_status (username admin); /healthz returns ok and needs no password.

  3. The status page password is your VM ID: in the Azure portal open the virtual machine, choose Properties and copy VM ID - a 36-character value such as 02aab8a4-74ef-476e-8182-f6d2ba4166a6, typed exactly as shown in lower case. Every deployment sets it from its own VM ID on first boot.

  4. SSH as ubuntu with your key. Publish a site with sudo bash ~/iscripts/add_site.sh - it asks for your domain and whether the site serves files or proxies to a local app, then writes and enables the config. Add HTTPS with sudo bash ~/iscripts/setup_ssl.sh, which checks your DNS and a real ACME challenge before contacting Let's Encrypt.

Security posture

What this Azure image does and does not ship with, one fact per line.

  • Clean-room build on Canonical's official Ubuntu 24.04 LTS image from the Azure Marketplace: every component comes from its own official source and no third-party image was launched or copied.

  • The image carries exactly one credential - the /nginx_status basic-auth password - and it ships as a random 48-character value that was discarded.

  • The pre-image cleanup proves the build's own credential returns 401 before capture; first boot then sets the password from the new VM's own vmId read from Azure IMDS and verifies it the way a browser would, expecting 200 with the right credential and 401 with a wrong one.

  • The ubuntu login account ships password-locked with an empty authorized_keys, and cloud-init installs your own SSH key at deploy time.

  • No build site, certificate or certbot account ships.

  • Verified against Microsoft's documented Linux certification test cases on a VM deployed from this gallery version - 13 passed, 0 failures - with VM extension provisioning confirmed, a reboot smoke test, and every helper script executed rather than only reviewed.

  • The password tool requires at least 12 characters with upper- and lower-case letters, a number and a symbol.

  • The image is HTTP-only until you issue a certificate: run setup_ssl.sh for Let's Encrypt, and restrict port 22 to trusted IP ranges.