{"id":14011,"date":"2020-02-08T14:51:21","date_gmt":"2020-02-08T13:51:21","guid":{"rendered":"https:\/\/www.datanovia.com\/en\/?post_type=dt_lessons&#038;p=14011"},"modified":"2020-02-08T15:20:54","modified_gmt":"2020-02-08T14:20:54","slug":"digitalocean-how-to-install-nginx-and-ssl","status":"publish","type":"dt_lessons","link":"https:\/\/www.datanovia.com\/en\/lessons\/digitalocean-how-to-install-nginx-and-ssl\/","title":{"rendered":"DigitalOcean: How To Install Nginx and SSL"},"content":{"rendered":"<div id=\"rdoc\">\n<p>This article describes how to <strong>install Nginx<\/strong> and <strong>add SSL to Nginx<\/strong> on DigitalOcean server.<\/p>\n<p>Contents:<\/p>\n<div id=\"TOC\">\n<ul>\n<li><a href=\"#prerequisites\">Prerequisites<\/a><\/li>\n<li><a href=\"#step-1-install-nginx\">Step 1: Install Nginx<\/a><\/li>\n<li><a href=\"#step-2-add-a-custom-domain-name-optional\">Step 2: Add a custom domain name (optional)<\/a><\/li>\n<li><a href=\"#step-3-add-a-ssl-certificate-to-your-http-to-get-https-optional\">Step 3: Add a SSL certificate to your HTTP to get HTTPS (optional)<\/a><\/li>\n<li><a href=\"#frequently-asked-questions\">Frequently asked questions<\/a>\n<ul>\n<li><a href=\"#how-to-check-the-ssl-certificate-status\">How to check the SSL certificate status<\/a><\/li>\n<li><a href=\"#how-to-optimize-nginx-configuration\">How to optimize Nginx configuration<\/a><\/li>\n<li><a href=\"#how-to-kill-a-process-running-on-port-80\">How to Kill a process running on port 80<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/div>\n<div id=\"prerequisites\" class=\"section level2\">\n<h2>Prerequisites<\/h2>\n<p>Read this: <a href=\"\/?p=14008\">DigitalOcean Initial Ubuntu Server Setup<\/a><\/p>\n<\/div>\n<div id=\"step-1-install-nginx\" class=\"section level2\">\n<h2>Step 1: Install Nginx<\/h2>\n<pre class=\"bash\"><code># Install nginx\r\nsudo apt-get update\r\nsudo apt-get -y install nginx\r\n\r\n# Adjust the firewall to allow http\r\nsudo ufw allow 'Nginx HTTP' # Open port 80\r\n\r\n# Modify the website index if you want\r\nsudo nano \/var\/www\/html\/index.nginx-debian.html\r\nsudo service nginx restart<\/code><\/pre>\n<p>Now check your browser by typing your server IP (example: <a class=\"uri\" href=\"http:\/\/your_server_ip\">http:\/\/your_server_ip<\/a>). You should see a \u2018Welcome to nginx!\u2019 message.<\/p>\n<p>Read more: <a href=\"https:\/\/www.digitalocean.com\/community\/tutorials\/how-to-install-nginx-on-ubuntu-16-04\">How To Install Nginx on Ubuntu 16.04<\/a><\/p>\n<\/div>\n<div id=\"step-2-add-a-custom-domain-name-optional\" class=\"section level2\">\n<h2>Step 2: Add a custom domain name (optional)<\/h2>\n<p>Let\u2019s assume our domain name is www.example.com<\/p>\n<ol style=\"list-style-type: decimal;\">\n<li>Get a domain name from any domain name registrar.<\/li>\n<li>Set up the DNS records for your domain by using a DNS hosting service (which DigitalOcean provides).<\/li>\n<li>Add the domain to your DigitalOcean account:\n<ul>\n<li>Modify the A flag to assign your domain to the right droplet<\/li>\n<li>Modify the CName flag to allow the www.example.com to link to the domain name (without www).<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p>Read more: <a href=\"https:\/\/www.digitalocean.com\/community\/tutorials\/how-to-point-to-digitalocean-nameservers-from-common-domain-registrars\">How To Point to DigitalOcean Nameservers From Common Domain Registrars<\/a><\/p>\n<\/div>\n<div id=\"step-3-add-a-ssl-certificate-to-your-http-to-get-https-optional\" class=\"section level2\">\n<h2>Step 3: Add a SSL certificate to your HTTP to get HTTPS (optional)<\/h2>\n<pre class=\"bash\"><code>#  Install Certbot\r\nsudo add-apt-repository ppa:certbot\/certbot  # press enter\r\nsudo apt-get update\r\nsudo apt-get install python-certbot-nginx\r\n\r\n# Modify nginx config file\r\nsudo nano \/etc\/nginx\/sites-available\/default\r\n# Find the existing server_name line and replace the underscore, _\r\nserver_name example.com www.example.com;\r\n# Verify config is ok\r\nsudo nginx -t\r\n# Reload the new config\r\nsudo systemctl reload nginx\r\n\r\n# Allow HTTPS through your firewall\r\nsudo ufw allow 'Nginx Full'\r\nsudo ufw allow 'Nginx HTTP'\r\n\r\n# Obtain an SSL Certificate\r\nsudo certbot --nginx -d example.com -d www.example.com<\/code><\/pre>\n<p>You will be asked to choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. Choose the option 2: Redirect - Make all requests redirect to secure HTTPS access.<\/p>\n<p>You can Set Up Auto-Renewal in crontab. You don\u2019t need to do that because cerbot will take care of this.<\/p>\n<pre class=\"bash\"><code># Open crontab\r\nsudo crontab -e\r\n# Add this\r\n15 3 * * * \/usr\/bin\/certbot renew --quiet<\/code><\/pre>\n<p>The <code>15 3 * * *<\/code> part of this line means \u201crun the following command at 3:15 am, every day\u201d. You may choose any time.<\/p>\n<p>Read more at: <a href=\"https:\/\/www.digitalocean.com\/community\/tutorials\/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-16-04\">How To Secure Nginx with Let\u2019s Encrypt on Ubuntu 16.04<\/a><\/p>\n<\/div>\n<div id=\"frequently-asked-questions\" class=\"section level2\">\n<h2>Frequently asked questions<\/h2>\n<div id=\"how-to-check-the-ssl-certificate-status\" class=\"section level3\">\n<h3>How to check the SSL certificate status<\/h3>\n<p>Check the SSL certificate status of a given domain\/subdomain (here, www.datanovia.com, for example)<\/p>\n<p>Visit this: <a class=\"uri\" href=\"https:\/\/www.ssllabs.com\/ssltest\/analyze.html?d=www.datanovia.com\">https:\/\/www.ssllabs.com\/ssltest\/analyze.html?d=www.datanovia.com<\/a><\/p>\n<\/div>\n<div id=\"how-to-optimize-nginx-configuration\" class=\"section level3\">\n<h3>How to optimize Nginx configuration<\/h3>\n<div id=\"worker-processes-and-worker-connections\" class=\"section level4\">\n<h4>Worker Processes and Worker Connections<\/h4>\n<p>Two variables need to be tuned here:<\/p>\n<ul>\n<li><strong>worker_processes<\/strong>: a common practice is to run 1 worker process per core. To figure out what number you\u2019ll need to set <code>worker_processes<\/code> to, simply take a look at the amount of cores you have on your setup. Use the following bash code:<\/li>\n<\/ul>\n<pre class=\"bash\"><code>grep processor \/proc\/cpuinfo | wc -l<\/code><\/pre>\n<ul>\n<li><strong>worker_connections<\/strong>: tells our worker processes how many people can simultaneously be served by Nginx. Default value is 768. Check your core\u2019s limitations by using the following bash command:<\/li>\n<\/ul>\n<pre class=\"bash\"><code>ulimit -n<\/code><\/pre>\n<p>On a smaller machine (512MB droplet) this number will probably read 1024, which is a good starting number.<\/p>\n<p>Update your config file as follow<\/p>\n<pre class=\"bash\"><code># Open the config file\r\nsudo nano \/etc\/nginx\/nginx.conf\r\n\r\n# Add something like this\r\nworker_processes 1;\r\nworker_connections 1024;<\/code><\/pre>\n<div class=\"warning\">\n<p>Remember, the amount of clients that can be served can be multiplied by the amount of cores. In this case, we can server 1024 clients\/second. This is, however, even further mitigated by the `keepalive_timeout directive.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"how-to-kill-a-process-running-on-port-80\" class=\"section level3\">\n<h3>How to Kill a process running on port 80<\/h3>\n<p>If you get following error, when you try to start nginx\u2026<\/p>\n<p>Then it means nginx or some other process is already using port 80.<\/p>\n<p>You can kill it using: <code>sudo fuser -k 80\/tcp<\/code><\/p>\n<p>And then try restarting nginx again:<\/p>\n<pre class=\"bash\"><code>service nginx start<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<p><!--end rdoc--><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Describes how to install Nginx and add SSL to Nginx on DigitalOcean server.<\/p>\n","protected":false},"author":1,"featured_media":8994,"parent":0,"menu_order":5,"comment_status":"open","ping_status":"closed","template":"","class_list":["post-14011","dt_lessons","type-dt_lessons","status-publish","has-post-thumbnail","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>DigitalOcean: How To Install Nginx and SSL - Datanovia<\/title>\n<meta name=\"description\" content=\"Describes how to install Nginx and add SSL to Nginx on DigitalOcean server.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.datanovia.com\/en\/lessons\/digitalocean-how-to-install-nginx-and-ssl\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"DigitalOcean: How To Install Nginx and SSL - Datanovia\" \/>\n<meta property=\"og:description\" content=\"Describes how to install Nginx and add SSL to Nginx on DigitalOcean server.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.datanovia.com\/en\/lessons\/digitalocean-how-to-install-nginx-and-ssl\/\" \/>\n<meta property=\"og:site_name\" content=\"Datanovia\" \/>\n<meta property=\"article:modified_time\" content=\"2020-02-08T14:20:54+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2019\/05\/X42287188_725137297826217_3261641689780977664_n.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"512\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.datanovia.com\/en\/lessons\/digitalocean-how-to-install-nginx-and-ssl\/\",\"url\":\"https:\/\/www.datanovia.com\/en\/lessons\/digitalocean-how-to-install-nginx-and-ssl\/\",\"name\":\"DigitalOcean: How To Install Nginx and SSL - Datanovia\",\"isPartOf\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/lessons\/digitalocean-how-to-install-nginx-and-ssl\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/lessons\/digitalocean-how-to-install-nginx-and-ssl\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2019\/05\/X42287188_725137297826217_3261641689780977664_n.jpg\",\"datePublished\":\"2020-02-08T13:51:21+00:00\",\"dateModified\":\"2020-02-08T14:20:54+00:00\",\"description\":\"Describes how to install Nginx and add SSL to Nginx on DigitalOcean server.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/lessons\/digitalocean-how-to-install-nginx-and-ssl\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.datanovia.com\/en\/lessons\/digitalocean-how-to-install-nginx-and-ssl\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.datanovia.com\/en\/lessons\/digitalocean-how-to-install-nginx-and-ssl\/#primaryimage\",\"url\":\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2019\/05\/X42287188_725137297826217_3261641689780977664_n.jpg\",\"contentUrl\":\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2019\/05\/X42287188_725137297826217_3261641689780977664_n.jpg\",\"width\":1024,\"height\":512},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.datanovia.com\/en\/lessons\/digitalocean-how-to-install-nginx-and-ssl\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.datanovia.com\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Lessons\",\"item\":\"https:\/\/www.datanovia.com\/en\/lessons\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"DigitalOcean: How To Install Nginx and SSL\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.datanovia.com\/en\/#website\",\"url\":\"https:\/\/www.datanovia.com\/en\/\",\"name\":\"Datanovia\",\"description\":\"Data Mining and Statistics for Decision Support\",\"publisher\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.datanovia.com\/en\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.datanovia.com\/en\/#organization\",\"name\":\"Datanovia\",\"url\":\"https:\/\/www.datanovia.com\/en\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.datanovia.com\/en\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/09\/datanovia-logo.png\",\"contentUrl\":\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/09\/datanovia-logo.png\",\"width\":98,\"height\":99,\"caption\":\"Datanovia\"},\"image\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"DigitalOcean: How To Install Nginx and SSL - Datanovia","description":"Describes how to install Nginx and add SSL to Nginx on DigitalOcean server.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.datanovia.com\/en\/lessons\/digitalocean-how-to-install-nginx-and-ssl\/","og_locale":"en_US","og_type":"article","og_title":"DigitalOcean: How To Install Nginx and SSL - Datanovia","og_description":"Describes how to install Nginx and add SSL to Nginx on DigitalOcean server.","og_url":"https:\/\/www.datanovia.com\/en\/lessons\/digitalocean-how-to-install-nginx-and-ssl\/","og_site_name":"Datanovia","article_modified_time":"2020-02-08T14:20:54+00:00","og_image":[{"width":1024,"height":512,"url":"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2019\/05\/X42287188_725137297826217_3261641689780977664_n.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.datanovia.com\/en\/lessons\/digitalocean-how-to-install-nginx-and-ssl\/","url":"https:\/\/www.datanovia.com\/en\/lessons\/digitalocean-how-to-install-nginx-and-ssl\/","name":"DigitalOcean: How To Install Nginx and SSL - Datanovia","isPartOf":{"@id":"https:\/\/www.datanovia.com\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.datanovia.com\/en\/lessons\/digitalocean-how-to-install-nginx-and-ssl\/#primaryimage"},"image":{"@id":"https:\/\/www.datanovia.com\/en\/lessons\/digitalocean-how-to-install-nginx-and-ssl\/#primaryimage"},"thumbnailUrl":"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2019\/05\/X42287188_725137297826217_3261641689780977664_n.jpg","datePublished":"2020-02-08T13:51:21+00:00","dateModified":"2020-02-08T14:20:54+00:00","description":"Describes how to install Nginx and add SSL to Nginx on DigitalOcean server.","breadcrumb":{"@id":"https:\/\/www.datanovia.com\/en\/lessons\/digitalocean-how-to-install-nginx-and-ssl\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.datanovia.com\/en\/lessons\/digitalocean-how-to-install-nginx-and-ssl\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.datanovia.com\/en\/lessons\/digitalocean-how-to-install-nginx-and-ssl\/#primaryimage","url":"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2019\/05\/X42287188_725137297826217_3261641689780977664_n.jpg","contentUrl":"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2019\/05\/X42287188_725137297826217_3261641689780977664_n.jpg","width":1024,"height":512},{"@type":"BreadcrumbList","@id":"https:\/\/www.datanovia.com\/en\/lessons\/digitalocean-how-to-install-nginx-and-ssl\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.datanovia.com\/en\/"},{"@type":"ListItem","position":2,"name":"Lessons","item":"https:\/\/www.datanovia.com\/en\/lessons\/"},{"@type":"ListItem","position":3,"name":"DigitalOcean: How To Install Nginx and SSL"}]},{"@type":"WebSite","@id":"https:\/\/www.datanovia.com\/en\/#website","url":"https:\/\/www.datanovia.com\/en\/","name":"Datanovia","description":"Data Mining and Statistics for Decision Support","publisher":{"@id":"https:\/\/www.datanovia.com\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.datanovia.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.datanovia.com\/en\/#organization","name":"Datanovia","url":"https:\/\/www.datanovia.com\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.datanovia.com\/en\/#\/schema\/logo\/image\/","url":"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/09\/datanovia-logo.png","contentUrl":"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/09\/datanovia-logo.png","width":98,"height":99,"caption":"Datanovia"},"image":{"@id":"https:\/\/www.datanovia.com\/en\/#\/schema\/logo\/image\/"}}]}},"multi-rating":{"mr_rating_results":[]},"_links":{"self":[{"href":"https:\/\/www.datanovia.com\/en\/wp-json\/wp\/v2\/dt_lessons\/14011","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.datanovia.com\/en\/wp-json\/wp\/v2\/dt_lessons"}],"about":[{"href":"https:\/\/www.datanovia.com\/en\/wp-json\/wp\/v2\/types\/dt_lessons"}],"author":[{"embeddable":true,"href":"https:\/\/www.datanovia.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.datanovia.com\/en\/wp-json\/wp\/v2\/comments?post=14011"}],"version-history":[{"count":0,"href":"https:\/\/www.datanovia.com\/en\/wp-json\/wp\/v2\/dt_lessons\/14011\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.datanovia.com\/en\/wp-json\/wp\/v2\/media\/8994"}],"wp:attachment":[{"href":"https:\/\/www.datanovia.com\/en\/wp-json\/wp\/v2\/media?parent=14011"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}