Skip to content

Latest commit

 

History

History
212 lines (165 loc) · 6.13 KB

67.create-sites-available-and-sites-enabled-directories-on-nginx.md

File metadata and controls

212 lines (165 loc) · 6.13 KB

Create sites-available and sites-enabled directories on nginx

  • Go to the nginx directory

    cd /etc/nginx
  • Create sites-available and sites-enabled directories

    sudo mkdir sites-available sites-enabled
  • Configure sites-enabled inside nginx.conf File

    • Open nginx.conf file

      sudo nano /etc/nginx/nginx.conf
    • Add the following line inside the http block

      include /etc/nginx/sites-enabled/*;
  • Test Nginx Config

    sudo nginx -t
  • Restart Nginx

    sudo service nginx restart
  • You can also create default server configuration inside sites-available (optional)

    • Create default file inside sites-available

      sudo nano /etc/nginx/sites-available/default
    • Paste below code inside default file. This file's code may change in future. It depends on Nginx.

      # You should look at the following URL's in order to grasp a solid understanding
      # of Nginx configuration files in order to fully unleash the power of Nginx.
      # http://wiki.nginx.org/Pitfalls
      # http://wiki.nginx.org/QuickStart
      # http://wiki.nginx.org/Configuration
      #
      # Generally, you will want to move this file somewhere, and start with a clean
      # file but keep this around for reference. Or just disable in sites-enabled.
      #
      # Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
      ##
      
      # Default server configuration
      #
      server {
              listen 80 default_server;
              listen [::]:80 default_server;
      
              # SSL configuration
              #
              # listen 443 ssl default_server;
              # listen [::]:443 ssl default_server;
              #
              # Note: You should disable gzip for SSL traffic.
              # See: https://bugs.debian.org/773332
              #
              # Read up on ssl_ciphers to ensure a secure configuration.
              # See: https://bugs.debian.org/765782
              #
              # Self signed certs generated by the ssl-cert package
              # Don't use them in a production server!
              #
              # include snippets/snakeoil.conf;
      
              root /var/www/html;
      
              # Add index.php to the list if you are using PHP
              index index.html index.htm index.nginx-debian.html;
      
              server_name _;
      
              location / {
                      # First attempt to serve request as file, then
                      # as directory, then fall back to displaying a 404.
                      try_files $uri $uri/ =404;
                      # proxy_pass http://localhost:8080;
                      # proxy_http_version 1.1;
                      # proxy_set_header Upgrade $http_upgrade;
                      # proxy_set_header Connection 'upgrade';
                      # proxy_set_header Host $host;
                      # proxy_cache_bypass $http_upgrade;
              }
      
              # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
              #
              #location ~ \.php$ {
              #       include snippets/fastcgi-php.conf;
              #
              #       # With php7.0-cgi alone:
              #       fastcgi_pass 127.0.0.1:9000;
              #       # With php7.0-fpm:
              #       fastcgi_pass unix:/run/php/php7.0-fpm.sock;
              #}
      
              # deny access to .htaccess files, if Apache's document root
              # concurs with nginx's one
              #
              #location ~ /\.ht {
              #       deny all;
              #}
      }
      
      
      # Virtual Host configuration for example.com
      #
      # You can move that to a different file under sites-available/ and symlink that
      # to sites-enabled/ to enable it.
      #
      #server {
      #       listen 80;
      #       listen [::]:80;
      #
      #       server_name example.com;
      #
      #       root /var/www/example.com;
      #       index index.html;
      #
      #       location / {
      #               try_files $uri $uri/ =404;
      #       }
      #}
      
    • Create a symbolic link of default file inside sites-enabled

      sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default
    • Test Nginx Config

      sudo nginx -t
    • Restart Nginx

      sudo service nginx restart
  • You can change nginx default index html

    • Open index.nginx-debian.html file

      sudo nano /var/www/html/index.nginx-debian.html
    • Change the content of the file

      <!DOCTYPE html>
      <html>
      <head>
              <title>Welcome to nginx! Satyam</title>
              <style>
                      body {
                              width: 35em;
                              margin: 0 auto;
                              font-family: Tahoma, Verdana, Arial, sans-serif;
                      }
              </style>
      </head>
      <body>
              <h1>Welcome to nginx!</h1>
              <p>If you see this page, the nginx web server is successfully installed and
              working. Further configuration is required.</p>
      
              <p>For online documentation and support please refer to
              <a href="http://nginx.org/">nginx.org</a>.<br/>
              Commercial support is available at
              <a href="http://nginx.com/">nginx.com</a>.</p>
      
              <p><em>Thank you for using nginx.</em></p>
      </body>
      </html>
    • Restart Nginx

      sudo service nginx restart

Reference Links