# Project Deployment
# Frontend Packaging and Deployment
pnpm run build
- Upload the
dist
folder to the server's/data/v8/dist/
directory
# Backend Packaging and Deployment
Taking
wk-mini
as an example, runmvn package nutzboot:shade
in its root directory to packageUpload
target/wk-mini.jar
to the server's/data/v8/
directorynohup java -jar wk-mini.jar >/dev/null 2>&1 &
to run in the backgroundRun with configuration file specified in the jar:
nohup java -jar -Dnutz.profiles.active=pro -Xmx450m wk-mini.jar >/dev/null 2>&1 &
Run with configuration file loaded from a folder:
nohup java -jar -Dnutz.boot.configure.yaml.dir=/data/budwk/ -Xmx450m wk-mini.jar >/dev/null 2>&1 &
# Nginx Configuration
- Enable gzip in Nginx by configuring the following content under the
http
node:
# Enable gzip compression
gzip on;
# Compression threshold, only compress files larger than 1K, generally no need to change
gzip_min_length 1k;
# Compression buffer
gzip_buffers 16 64K;
# Compression version (default 1.1, if frontend is squid2.5, please use 1.0)
gzip_http_version 1.1;
# Compression level, 1-10, higher number means better compression but longer time
gzip_comp_level 5;
# File types to compress
gzip_types text/plain application/x-javascript text/css application/xml application/javascript;
# Related to cache services like Squid, when on, it adds "Vary: Accept-Encoding" to the Header
gzip_vary on;
# IE6 is not very friendly to Gzip, don't give it Gzip
gzip_disable "MSIE [1-6]\.";
- Complete configuration for
demo.budwk.com.conf
:
upstream demo_server {
server 127.0.0.1:9900;
server 127.0.0.1:9901;
}
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
#listen 80;
listen 443 ssl;
#if ( $scheme = "http" ) {
# rewrite ^(.*) https://$server_name$1 permanent;
#}
server_name demo.budwk.com;
server_name_in_redirect off;
ssl_certificate /etc/nginx/ssl/demo.budwk.com.pem;
ssl_certificate_key /etc/nginx/ssl/demo.budwk.com.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
add_header "X-UA-Compatible" "IE=Edge, chrome=1";
gzip_static on;
# Frontend
location / {
root /data/v8/dist;
try_files $uri /index.html;
index index.html;
}
# Local uploaded files
location /upload/ {
alias /data/files/upload;
}
error_page 405 =200 $uri;
location @router {
rewrite ^.*$ /index.html last;
}
# Backend request proxy
location ^~ /api/ {
proxy_pass http://demo_server/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 30M;
}
# WebSocket proxy
location ^~ /websocket {
proxy_pass http://demo_server/websocket;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
}