8. Hosting a Static Website and Changing the Configuration
8.2 Amazon Linux 2023 + Nginx
sudo yum install -y nginx
sudo service nginx start
sudo systemctl enable nginx
sudo tee /etc/nginx/conf.d/mysite.conf > /dev/null <<'EOF'
server {
listen 80;
listen [::]:80;
server_name YOUR_SERVER_NAME;
root /var/www/mysite;
index index.html;
location / {
try_files $uri $uri/ =404;
}
error_page 404 /404.html;
access_log /var/log/nginx/mysite_access.log;
error_log /var/log/nginx/mysite_error.log;
}
EOF
# put this server's public IP (or your domain) as server_name
sudo sed -i "s/YOUR_SERVER_NAME/$(curl -s https://checkip.amazonaws.com)/" /etc/nginx/conf.d/mysite.conf
sudo nginx -t && sudo service nginx reload
curl -s http://localhost -H "Host: $(curl -s https://checkip.amazonaws.com)" | head -5
Open http://<PUBLIC_IP> in your browser.
Why server_name = public IP here?
Amazon Linux and CentOS already have a default server { server_name _; } block inside /etc/nginx/nginx.conf that serves /usr/share/nginx/html. Giving our block the exact public IP (or a domain like mysite.example.com) makes Nginx pick our block when the browser asks for that host. If you later attach an Elastic IP or a domain, update server_name and reload. Quick method instead: simply copy your files into /usr/share/nginx/html/ — no config needed.
Ravindra Bagale's Tip
Even with the config correct, Nginx's welcome page shows up – many students get stuck here. The reason is that another server block won. Check whether server_name has your public IP or domain, and where default_server is. Read the "how a server block is chosen" rule in Section 7.5 again.
Ravindra Bagale's Tip – मराठी
Config बरोबर असूनही Nginx चं welcome page दिसतं – बरेच students इथे अडकतात. कारण दुसरा server block जिंकला. server_name मध्ये तुमचा public IP किंवा domain आहे का, आणि default_server कुठे आहे ते बघा. Section 7.5 मधला "server block कसा निवडला जातो" हा नियम पुन्हा वाचा.
Ravindra Bagale's Tip – हिंदी
Config सही होने पर भी Nginx का welcome page दिखता है – बहुत से students यहाँ अटकते हैं. वजह यह है कि दूसरा server block जीत गया. देखो कि server_name में तुम्हारा public IP या domain है या नहीं, और default_server कहाँ है. Section 7.5 का "server block कैसे चुना जाता है" वाला नियम फिर से पढ़ो.
Lab
Host mysite with Nginx on Amazon Linux 2023. Request a page that does not exist and confirm your custom 404 page appears.