# 7.8 Combination 3: Ubuntu + Nginx

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

Ubuntu मध्ये sites-available मध्ये config, sites-enabled मध्ये symlink. Dedicated lab मध्ये default welcome site disable करू.

sudo service apache2 stop 2>/dev/null
sudo systemctl disable apache2 2>/dev/null
sudo apt update && sudo apt install -y nginx

sudo tee /etc/nginx/sites-available/mysite > /dev/null <<'EOF'
server {
    listen 80 default_server;
    listen [::]:80 default_server;
    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

sudo ln -s /etc/nginx/sites-available/mysite /etc/nginx/sites-enabled/mysite
sudo rm -f /etc/nginx/sites-enabled/default          # disable the Ubuntu welcome site
sudo chown -R www-data:www-data /var/www/mysite       # optional; 644/755 is enough to read
sudo nginx -t && sudo service nginx reload
curl -s http://localhost | head -5

आधीच mysite symlink असेल तर ln -s “File exists” देईल; ls -l ने योग्य target तपासा. या sample मध्ये default_server वापरतो, म्हणून त्याच address:port चा दुसरा default_server नसावा. अनेक production sites असतील तर त्यांचे links काढू नका.

Lab

ls -l /etc/nginx/sites-enabled/ मधला mysite target पाहा. sudo nginx -T | grep -E "server_name|root" ने config तपासा. Nginx install नंतर active नसेल तर start/enable करून test करा.

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

Absolute symlink target वाचायला सोपा असतो. Relative link सुद्धा योग्य relative directory पासून दिला तर वैध आहे; broken link आहे का ls -l ने पाहा.
