diff --git a/content/posts/nginx/index.md b/content/posts/nginx/index.md new file mode 100644 index 0000000..7ae5540 --- /dev/null +++ b/content/posts/nginx/index.md @@ -0,0 +1,94 @@ +--- +title: "Nginx Configuration for websites and file server in Arch Linux" +date: 2023-11-11T01:30:00+00:00 +--- + +1. Point A and AAAA records to VPS ipv4 and ipv6 +Move public ssh key to .ssh/authorized_keys +2. pacman-S nginx certbot-nginx +Allow port 80, 443 +systemctl start nginx +3. Create according files according to nginx configuration +Create cert using certbot —nginx +Generate .htpasswd using htpasswd command with sudo +Edit nginx configuration +Create two folders at /etc/nginx +sites-available and sites-enabled + +``` +#sites-available/tty +#ln -sf sites-available/tty sites-enabled/tty +server { + server_name ng.night0721.xyz ; + location / { + root /etc/nginx/website; + index index.html + } + + # google drive + location /files { + root /etc/nginx/files + autoindex on; + auth_basic "Restricted Access"; + auth_basic_user_file /etc/nginx/.htpasswd; + } + + location /discord { + proxy_pass https://discord.com/; + proxy_set_header Host discord.com; + proxy_set_header X-Real-IP $remote_addr; + } + + listen [::]:443 ssl ipv6only=on; + listen 443 ssl; + ssl_certificate /etc/letsencrypt/live/ng.night0721.xyz/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/ng.night0721.xyz/privkey.pem; + include /etc/letsencrypt/options-ssl-nginx.conf; + ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; +} + +server { + if ($host = ng.night0721.xyz) { + return 301 https://$host$request_uri; + } + listen 80 ; + listen [::]:80 ; + server_name ng.night0721.xyz ; + return 404; +} +``` + +``` +# nginx.conf +user http; +worker_processes auto; +worker_cpu_affinity auto; + +events { + multi_accept on; + worker_connections 1024; +} + +http { + charset utf-8; + sendfile on; + tcp_nopush on; + tcp_nodelay on; + server_tokens off; + log_not_found off; + types_hash_max_size 4096; + client_max_body_size 16M; + + # MIME + include mime.types; + default_type application/octet-stream; + + access_log /var/log/nginx/access.log; + error_log /var/log/nginx/error.log warn; + + # load configs + include /etc/nginx/sites-enabled/*; +} +``` + +Useful video for setting up nginx: https://youtu.be/ugWydr_QdIY?si=vgyS-l6yWsqlSHZC diff --git a/data/bookmarks.json b/data/bookmarks.json index df2043e..01ef11b 100644 --- a/data/bookmarks.json +++ b/data/bookmarks.json @@ -67,6 +67,20 @@ } ] }, + "videos": { + "title": "Videos", + "class": "videos", + "links": [ + { + "title": "ThePrimeagen: Neovim RC From Scratch", + "link": "https://www.youtube.com/watch?v=w7i4amO_zaE" + }, + { + "title": "Fireship: Ultimate guide to web perfomance", + "link": "https://www.youtube.com/watch?v=0fONene3OIA" + } + ] + }, "posts": { "title": "Posts", "class": "posts",