{
    "componentChunkName": "component---src-templates-docs-js",
    "path": "/veckoanvisningar/kursvecka-03/cscloud/03-NGINX",
    "result": {"data":{"site":{"siteMetadata":{"title":"Linnéuniversitetet","language":"sv"}},"mdx":{"fields":{"id":"3b482b71-cd04-5aa9-b999-fdae4f57f6d2","title":"3 - NGINX","slug":"/veckoanvisningar/kursvecka-03/cscloud/03-NGINX"},"body":"var _excluded = [\"components\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"title\": \"3 - NGINX\",\n  \"metaTitle\": \"1DV026 | NGINX\",\n  \"metaDescription\": \"metaDescription\"\n};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar Youtube = makeShortcode(\"Youtube\");\nvar Hint = makeShortcode(\"Hint\");\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, _excluded);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"Let us install and configure NGINX\"), mdx(Youtube, {\n    link: \"https://www.youtube.com/embed/9GYAJqdLIas\",\n    mdxType: \"Youtube\"\n  }), mdx(Hint, {\n    type: \"danger\",\n    mdxType: \"Hint\"\n  }, \" When configuring NGINX for production, you should always turn of information that the server leeks. Do:\", mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"sudo nano /etc/nginx/nginx.conf\\n\")), mdx(\"p\", null, \"Remove the # in front of \\\"server_tokens off;\\\":\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-text\"\n  }, \"server_tokens off;\\n\")), mdx(\"p\", null, \"Restart NGINX:\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"sudo systemctl restart nginx.service\\n\"))), mdx(\"h3\", null, \"Useful commands\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"sudo apt-get install nginx\\n\")), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"sudo systemctl status nginx\\n\")), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"sudo systemctl reload nginx\\n\")), mdx(\"p\", null, \"(service is being used in the recording but systemctl is newer and should be used.)\"), mdx(\"h3\", null, \"Usuful paths\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"/etc/nginx/nginx.conf - Location of global config file\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"/etc/nginx/sites-enabled/default - Location of default server block config file.\")), mdx(\"h3\", null, \"Useful links\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://www.nginx.com/resources/wiki/start/topics/tutorials/install/\"\n  }, \"Nginx - Installation\"))), mdx(\"h3\", null, \"Template\"), mdx(\"p\", null, \"The following can act as a template to get applications up and running in the course. Pay extra attention to the / on the first and second line.\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-text\"\n  }, \"    location /hello-world/ {\\n        proxy_pass http://localhost:5001/;\\n      proxy_http_version 1.1;\\n        proxy_set_header Upgrade            $http_upgrade;\\n        proxy_set_header Connection         'upgrade';\\n\\n      # Added after the recording\\n        proxy_set_header Host                     $host;\\n        proxy_set_header X-Real-IP            $remote_addr;\\n        proxy_set_header X-Forwarded-For      $proxy_add_x_forwarded_for;\\n        proxy_set_header X-Forwarded-Proto  $scheme;\\n        proxy_set_header X-Forwarded-Host     $host;\\n        proxy_set_header X-Forwarded-Port     $server_port;\\n    }\\n\")));\n}\n;\nMDXContent.isMDXComponent = true;","tableOfContents":{"items":[{"url":"#useful-commands","title":"Useful commands"},{"url":"#usuful-paths","title":"Usuful paths"},{"url":"#useful-links","title":"Useful links"},{"url":"#template","title":"Template"}]},"parent":{"relativePath":"veckoanvisningar/kursvecka-03/cscloud/03-NGINX.md"},"frontmatter":{"metaTitle":"1DV026 | NGINX","metaDescription":"metaDescription"}},"allMdx":{"edges":[{"node":{"fields":{"slug":"/","title":"Webbprogrammering på serversidan (1DV026)"}}},{"node":{"fields":{"slug":"/examinationsuppgifter","title":"Examinationsuppgifter"}}},{"node":{"fields":{"slug":"/ovningsuppgifter/02-ovningsuppgifter","title":"Övningsuppgifter"}}},{"node":{"fields":{"slug":"/ovningsuppgifter/delkurs-a","title":"Delkurs A"}}},{"node":{"fields":{"slug":"/ovningsuppgifter/delkurs-b","title":"Delkurs B"}}},{"node":{"fields":{"slug":"/samlingar","title":"Samlingar"}}},{"node":{"fields":{"slug":"/sandbox/basic-elements","title":"Basic elements"}}},{"node":{"fields":{"slug":"/sandbox/code","title":"Code"}}},{"node":{"fields":{"slug":"/sandbox/exercise","title":"Exercises"}}},{"node":{"fields":{"slug":"/sandbox/frontmatter","title":"Frontmatter"}}},{"node":{"fields":{"slug":"/sandbox/hint","title":"Hint"}}},{"node":{"fields":{"slug":"/sandbox","title":"Sandbox"}}},{"node":{"fields":{"slug":"/sandbox/markdown-import","title":"Imported markdown"}}},{"node":{"fields":{"slug":"/sandbox/mermaid","title":"Mermaid"}}},{"node":{"fields":{"slug":"/sandbox/tabs","title":"Tabs"}}},{"node":{"fields":{"slug":"/sandbox/youtube","title":"YouTube"}}},{"node":{"fields":{"slug":"/studieguide/examination","title":"Examination"}}},{"node":{"fields":{"slug":"/studieguide/forvantningar","title":"Förväntningar"}}},{"node":{"fields":{"slug":"/studieguide","title":"Studieguide"}}},{"node":{"fields":{"slug":"/studieguide/kommunikationsstrategi","title":"Kommunikationsstrategi"}}},{"node":{"fields":{"slug":"/studieguide/kursledning","title":"Kursledning"}}},{"node":{"fields":{"slug":"/studieguide/kursvardering","title":"Kursvärdering"}}},{"node":{"fields":{"slug":"/studieguide/larresurser","title":"Lärresurser"}}},{"node":{"fields":{"slug":"/studieguide/registrering","title":"Registrering"}}},{"node":{"fields":{"slug":"/studieguide/valkommen","title":"🎉 Välkommen!"}}},{"node":{"fields":{"slug":"/veckoanvisningar","title":"Veckoanvisningar"}}},{"node":{"fields":{"slug":"/examinationsuppgifter/delkurs-a/a1","title":"A1 - Online-test"}}},{"node":{"fields":{"slug":"/examinationsuppgifter/delkurs-a/a2","title":"A2 - Webbskrapan"}}},{"node":{"fields":{"slug":"/examinationsuppgifter/delkurs-a","title":"Delkurs A"}}},{"node":{"fields":{"slug":"/examinationsuppgifter/delkurs-b/b1","title":"B1 - CRUD"}}},{"node":{"fields":{"slug":"/examinationsuppgifter/delkurs-b/b2","title":"B2 - Realtidswebbapplikationen"}}},{"node":{"fields":{"slug":"/examinationsuppgifter/delkurs-b/b3","title":"B3 - Webbtjänsten"}}},{"node":{"fields":{"slug":"/examinationsuppgifter/delkurs-b","title":"Delkurs B"}}},{"node":{"fields":{"slug":"/examinationsuppgifter/om","title":"Om examination"}}},{"node":{"fields":{"slug":"/examinationsuppgifter/om/inlamning-via-mr","title":"Inlämning via Merge request"}}},{"node":{"fields":{"slug":"/samlingar/delkurs-a/inspelningar","title":"Stödjande inspelningar"}}},{"node":{"fields":{"slug":"/samlingar/delkurs-a/ovningar","title":"Övningar"}}},{"node":{"fields":{"slug":"/samlingar/delkurs-b","title":"Delkurs B"}}},{"node":{"fields":{"slug":"/samlingar/delkurs-b/inspelningar","title":"Stödjande inspelningar"}}},{"node":{"fields":{"slug":"/samlingar/delkurs-b/ovningar","title":"Övningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-01","title":"Kursvecka 1 - Nätverk"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-01/larmaterial","title":"Lärmaterial"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-01/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-01/utmaningar","title":"Utmaningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02","title":"Kursvecka 2 - Linux/Bash"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02/larmaterial","title":"Lärmaterial"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02/ovningsuppgifter","title":"Övningsuppgifter"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02/utmaningar","title":"Utmaningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03","title":"Kursvecka 3 - Webbservrar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/utmaningar","title":"Utmaningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-04","title":"Kursvecka 4 - Plattformen Node.js"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-04/lasanvisningar","title":"Läsanvisningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-04/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-04/ovningsuppgifter","title":"Övningsuppgifter"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-04/utmaningar","title":"Utmaningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-05","title":"Kursvecka 5 - Webbsäkerhet"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-05/lasanvisningar","title":"Läsanvisningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-05/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-05/ovningsuppgifter","title":"Övningsuppgifter"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-05/utmaningar","title":"Utmaningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-06","title":"Kursvecka 6 - Applikationer och tjänster"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-06/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-07-09","title":"Kursvecka 7-9 - Webbapplikationers arkitektur"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-07-09/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-07-09/ovningsuppgifter","title":"Övningsuppgifter"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-10-11","title":"Kursvecka 10-11 - Persistent data"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-10-11/lasanvisningar","title":"Läsanvisningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-10-11/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-10-11/ovningsuppgifter","title":"Övningsuppgifter"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-10-11/utmaningar","title":"Utmaningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-12-13","title":"Kursvecka 12-13 - Access control"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-12-13/lasanvisningar","title":"Läsanvisningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-12-13/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-12-13/utmaningar","title":"Utmaningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-14-15","title":"Kursvecka 14-15 - Realtidsapplikationer"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-14-15/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-14-15/utmaningar","title":"Utmaningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-16-19","title":"Kursvecka 16-19 - Restful Services"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-16-19/lasanvisningar","title":"Läsanvisningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-16-19/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-16-19/utmaningar","title":"Utmaningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-20","title":"Kursvecka 20 - Examination"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-20/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/examinationsuppgifter/om/resurser/kom-igang","title":"Kom Igang"}}},{"node":{"fields":{"slug":"/examinationsuppgifter/om/resurser/mr","title":"Mr"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-01/resurser/inspelningar","title":"Inspelningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02/resurser/inspelningar","title":"Inspelningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02/resurser/ovningar","title":"Ovningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/_old/ovningsuppgifter","title":"Övningsuppgifter"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/cscloud/00-prerequisites","title":"Prerequisites"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/cscloud/01-connect","title":"1 - Connect to CSCloud"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/cscloud/02-update","title":"2 - Update and install"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/cscloud/03-NGINX","title":"3 - NGINX"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/cscloud/05-http2","title":"5 - HTTP2"}}},{"node":{"fields":{"slug":"/examinationsuppgifter/om/kom-igang","title":"Kom igång med en uppgift"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/cscloud/08-run","title":"8 - Executing"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/cscloud/04-https","title":"4 - TLS (https)"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/cscloud/06-PM2","title":"6 - Process Manager"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/cscloud/09-troubleshoot","title":"10 - Troubleshoot"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/cscloud","title":"Guide CSCloud"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/cumulus","title":"Guide Cumulus"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/resurser/inspelningar","title":"Inspelningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/cumulus/your-first-cumulus-virtual-personal-server","title":"Your First Cumulus Virtual Personal Server"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/resurser/ovningar","title":"Ovningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-04/resurser/inspelningar","title":"Inspelningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-05/resurser/inspelningar","title":"Inspelningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-04/resurser/ovningar","title":"Ovningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-05/resurser/ovningar","title":"Ovningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-06/resurser/inspelningar","title":"Inspelningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-07-09/resurser/ovningar","title":"Ovningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-07-09/resurser/inspelningar","title":"Inspelningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-10-11/resurser/inspelningar","title":"Inspelningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-10-11/resurser/ovningar","title":"Ovningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-12-13/resurser/inspelningar","title":"Inspelningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-14-15/resurser/inspelningar","title":"Inspelningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-16-19/resurser/inspelningar","title":"Inspelningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/cscloud/07-files","title":"7 - Files"}}},{"node":{"fields":{"slug":"/samlingar/delkurs-a","title":"Delkurs A"}}},{"node":{"fields":{"slug":"/examinationsuppgifter/om/muntlig-examination","title":"Muntlig examination"}}}]}},"pageContext":{"id":"3b482b71-cd04-5aa9-b999-fdae4f57f6d2"}},
    "staticQueryHashes": ["253607798","3706406642","710574383"]}