{"id":20864,"date":"2021-04-08T20:58:51","date_gmt":"2021-04-08T20:58:51","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=20864"},"modified":"2021-04-08T20:59:02","modified_gmt":"2021-04-08T20:59:02","slug":"how-to-install-and-configure-nginx-in-ubuntu","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/how-to-install-and-configure-nginx-in-ubuntu\/","title":{"rendered":"How to install and configure nginx in Ubuntu?"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Step 1: Update Software Repositories<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">$ sudo apt-<span class=\"hljs-keyword\">get<\/span> update<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Step 2: Install Nginx From Ubuntu Repositories<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">Nginx is included <span class=\"hljs-keyword\">in<\/span> the Ubuntu <span class=\"hljs-number\">20.04<\/span> <span class=\"hljs-keyword\">default<\/span> repositories. Install it by entering the following command:\r\n$ sudo apt-<span class=\"hljs-keyword\">get<\/span> install nginx<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Step 3: Verify the Installation<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Verify that Nginx installed correctly by checking the software version. Enter the following:\r\n$ nginx -v<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Step 4: Controlling the Nginx Service<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Start by checking the status of the Nginx service:\r\n$ sudo systemctl status nginx\r\n$ sudo systemctl start nginx\r\n$ sudo systemctl enable nginx\r\n$ sudo systemctl stop nginx\r\n$ sudo systemctl disable nginx\r\n$ sudo systemctl reload nginx\r\n$ sudo systemctl restart nginx<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Step 5: Allow Nginx Traffic<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-comment\"># Start by displaying the available Nginx profiles:<\/span>\r\n$ sudo ufw app <span class=\"hljs-keyword\">list<\/span>\r\n\r\n<span class=\"hljs-comment\"># To grant Nginx access through the default Ubuntu firewall, enter the following:<\/span>\r\n$ sudo ufw allow <span class=\"hljs-string\">'nginx http'<\/span>\r\n\r\n<span class=\"hljs-comment\"># Refresh the firewall settings by entering<\/span>\r\n$ sudo ufw reload\r\n\r\n<span class=\"hljs-comment\"># For encrypted (https) traffic, enter:<\/span>\r\n$ sudo ufw allow <span class=\"hljs-string\">'nginx https'<\/span>\r\n\r\n<span class=\"hljs-comment\"># To allow both, enter:<\/span>\r\n$ sudo ufw allow <span class=\"hljs-string\">'nginx full'<\/span>\r\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Step 6: Test Nginx<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">Make sure that the Nginx service is running, <span class=\"hljs-keyword\">as<\/span> <span class=\"hljs-keyword\">in<\/span> Step <span class=\"hljs-number\">4.<\/span> Open a web browser, and navigate to the following web address:\r\n\r\nhttp:<span class=\"hljs-comment\">\/\/127.0.0.1<\/span>\r\n\r\n$ sudo apt-<span class=\"hljs-keyword\">get<\/span> install curl\r\n$ curl \u2013i 127.0.0.1<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Step 7: Configure a Server Block (Optional)<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">In Nginx, a server block is a configuration that works <span class=\"hljs-keyword\">as<\/span> its own server. By <span class=\"hljs-keyword\">default<\/span>, Nginx has one server block preconfigured.\r\n\r\nIt is located at \/<span class=\"hljs-keyword\">var<\/span>\/www\/html.\r\n\r\n\r\nvi \/<span class=\"hljs-keyword\">var<\/span>\/www\/html\/index.html\r\n\r\nIn the text editor, enter the following HTML code:\r\n\r\n<span class=\"xml\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">html<\/span>&gt;<\/span>\r\n   <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">head<\/span>&gt;<\/span>\r\n      <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">title<\/span>&gt;<\/span>Welcome to test_domain.com!<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">title<\/span>&gt;<\/span>\r\n   <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">head<\/span>&gt;<\/span>\r\n   <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">body<\/span>&gt;<\/span>\r\n      <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">h1<\/span>&gt;<\/span>This message confirms that your Nginx server block is working. Great work!<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">h1<\/span>&gt;<\/span>\r\n   <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">body<\/span>&gt;<\/span>\r\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">html<\/span>&gt;<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Important Nginx File Locations<\/h2>\n\n\n\n<p>By default, Nginx stores different configuration and log files in the following locations:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><ul><li><strong>\/var\/www\/html<\/strong>&nbsp;\u2013 Website content as seen by visitors.<\/li><li><strong>\/etc\/nginx&nbsp;<\/strong>\u2013 Location of the main Nginx application files.<\/li><li><strong>\/etc\/nginx\/nginx.conf \u2013&nbsp;<\/strong>The main Nginx configuration file.<\/li><li><strong>\/etc\/nginx\/sites-available<\/strong>&nbsp;\u2013 List of all websites configured through Nginx.<\/li><li><strong>\/etc\/nginx\/sites-enabled \u2013&nbsp;<\/strong>List of websites actively being served by Nginx.<\/li><li><strong>\/var\/log\/nginx\/access.log<\/strong>&nbsp;\u2013 Access logs tracking every request to your server.<\/li><li><strong>\/var\/log\/ngins\/error<\/strong>.<strong>log&nbsp;<\/strong>\u2013 A log of any errors generated in Nginx.<\/li><\/ul><\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Reference<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>https:\/\/phoenixnap.com\/kb\/how-to-install-nginx-on-ubuntu-20-04<\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Step 1: Update Software Repositories Step 2: Install Nginx From Ubuntu Repositories Step 3: Verify the Installation Step 4: Controlling the Nginx Service Step 5: Allow Nginx Traffic Step 6:&#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[2],"tags":[],"class_list":["post-20864","post","type-post","status-publish","format-standard","hentry","category-uncategorised"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/20864","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=20864"}],"version-history":[{"count":1,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/20864\/revisions"}],"predecessor-version":[{"id":20865,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/20864\/revisions\/20865"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=20864"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=20864"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=20864"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}