# 7.6 Combination 1: AL2023 + Nginx

Source: https://ravindrabagale.com/mr/aws/ch07-static-website-hosting-3-oses-2-web-servers/7-6-combination-1-amazon-linux-2023-nginx.html
Language: mr (Marathi with English technical terms)

Common steps पूर्ण झाल्यावर AL2023 वर Nginx config तयार करू. दुसरा server port 80 वर नसावा.

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

Browser मध्ये http://<PUBLIC_IP> उघडा. Checkip बाहेर दिसणारा egress IP सांगतो; NAT/proxy असेल तर तो instance चा inbound IP असेलच असं नाही. Console मधल्या स्वतःच्या public IP/EIP शी compare करून server_name योग्य ठेवा.

Exact server_name का?

Default block वेगळा root serve करत असू शकतो. Browser ने मागितलेल्या IP/domain शी आमचा block जुळला की /var/www/mysite निवडला जातो. EIP/domain बदलल्यावर server_name update/test/reload करा. Quick method मध्ये default root /usr/share/nginx/html मध्ये copy करता येतं.

Lab

Main page, /nahi-asa-page चा custom 404 आणि sudo tail -n 5 /var/log/nginx/mysite_access.log तपासा.

रवींद्र बागले यांची tip

Default welcome page दिसली तर files नाहीत असं लगेच समजू नका. Host/server_name आणि effective config तपासा.
