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 [2021/07/01 15:26] kalenpw |
development:deploy:nginx [2021/07/06 09:48] (current) kalenpw |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Nginx ====== | ====== 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. Don't blindly copy-paste may be errors.\\ | ||
---- | ---- | ||
- | ===== 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; | + | ... |
- | access_log / | + | |
- | + | ||
- | 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; | ||
- | access_log / | ||
- | 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 | ||
- | } | ||
- | </ |