Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
development:deploy:nginx [2020/04/16 11:13] kalenpw [Nginx] |
development:deploy:nginx [2021/07/06 09:48] (current) kalenpw |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Nginx ====== | ====== Nginx ====== | ||
| + | |||
| + | ---- | ||
| + | ===== Example Server Blocks ===== | ||
| + | Note: These are messy and need cleaned up. Don't blindly copy-paste may be errors. | ||
| * [[.nginx : dokuwiki | Dokuwiki ]] | * [[.nginx : dokuwiki | Dokuwiki ]] | ||
| + | * [[.nginx: laravel | Laravel ]] | ||
| + | * [[.nginx: react | React ]] | ||
| * [[.nginx : rocketchat | Rocket.Chat ]] | * [[.nginx : rocketchat | Rocket.Chat ]] | ||
| + | * [[.nginx: vue | Vue ]] | ||
| + | ---- | ||
| + | ===== Config ===== | ||
| + | ** Caching ** | ||
| + | <code nginx> | ||
| + | location /_assets { | ||
| + | expires 30d; | ||
| + | root / | ||
| + | } | ||
| + | </ | ||
| - | Note: These are messy and need cleaned up\\ | ||
| - | TODO: add example configs | ||
| ---- | ---- | ||
| - | ===== Example Server Blocks ===== | + | **http2** \\ |
| - | ** Laravel | + | Only works with TLS and modern browsers (though 95%+ usage) |
| <code nginx> | <code nginx> | ||
| server { | server { | ||
| - | | + | |
| - | server_name www.switchart.tk switchart.tk; | + | ... |
| - | + | ||
| - | root / | + | |
| - | index index.php index.html; | + | |
| - | + | ||
| - | location / { | + | |
| - | | + | |
| - | } | + | |
| - | + | ||
| - | location ~ \.php$ { | + | |
| - | #include snippets/ | + | |
| - | fastcgi_pass unix:/ | + | |
| - | fastcgi_index index.php; | + | |
| - | fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; | + | |
| - | include fastcgi_params; | + | |
| - | } | + | |
| - | + | ||
| - | location ~ / | + | |
| - | deny all; | + | |
| - | } | + | |
| - | error_page 404 /404.html; | + | |
| } | } | ||
| </ | </ | ||
| - | ** React ** | ||
| - | <code nginx> | ||
| - | server { | ||
| - | listen 80 default_server; | ||
| - | server_name www.schedukal.ml schedukal.ml; | ||
| - | root / | + | ---- |
| - | index index.php index.html; | + | **Reverse Proxy** \\ |
| + | Useful for services that run on abnormal ports, but you want to have clean urls to access them | ||
| + | <file nginx reverse_proxy.conf> | ||
| + | server { | ||
| + | server_name example.domain.com; | ||
| location / { | location / { | ||
| - | | + | |
| } | } | ||
| + | } | ||
| + | </ | ||
| + | ---- | ||
| - | location ~ \.php$ { | + | ** Redirect all URLs to root** \\ |
| - | | + | Used, for example, on kalen.pw so any non-found files are redirected to the homepage (as opposed to serving a 404) |
| - | | + | <code nginx> |
| - | | + | location / { |
| - | | + | if (!-e $request_filename) { |
| + | | ||
| } | } | ||
| - | |||
| - | location ~ / | ||
| - | deny all; | ||
| - | } | ||
| - | error_page 404 /404.html; | ||
| - | |||
| - | listen 443 ssl; # managed by Certbot | ||
| - | ssl_certificate / | ||
| - | ssl_certificate_key / | ||
| - | include / | ||
| - | ssl_dhparam / | ||
| } | } | ||
| </ | </ | ||
| - | ** Vue ** | + | ---- |
| - | <code nginx> | + | |
| - | server { | + | |
| - | listen 80; | + | |
| - | listen 443 ssl; # managed by Certbot | + | |
| - | server_name www.kalen.pw kalen.pw; | + | |
| - | root / | ||
| - | index index.php index.html; | ||
| - | |||
| - | location ~ \.php$ { | ||
| - | include snippets/ | ||
| - | fastcgi_pass unix:/ | ||
| - | } | ||
| - | |||
| - | error_page 404 /404.html; | ||
| - | ssl_certificate / | ||
| - | ssl_certificate_key / | ||
| - | include / | ||
| - | |||
| - | #if ($scheme != " | ||
| - | # return 301 https:// | ||
| - | #} # managed by Certbot | ||
| - | } | ||
| - | </ | ||