update at 2026-02-14 14:39:57
This commit is contained in:
34
sankey.conf
Normal file
34
sankey.conf
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
# HTTPS server
|
||||||
|
server {
|
||||||
|
listen 443 ssl;
|
||||||
|
server_name sankey.biboer.cn;
|
||||||
|
|
||||||
|
ssl_certificate /etc/letsencrypt/live/sankey.biboer.cn/fullchain.pem; # managed by Certbot
|
||||||
|
ssl_certificate_key /etc/letsencrypt/live/sankey.biboer.cn/privkey.pem; # managed by Certbot
|
||||||
|
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
|
||||||
|
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
|
||||||
|
|
||||||
|
root /home/gavin/sankey/dist;
|
||||||
|
index index.html;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
try_files $uri $uri/ /index.html;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ {
|
||||||
|
expires 1y;
|
||||||
|
add_header Cache-Control "public, immutable";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# HTTP to HTTPS redirect
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
server_name sankey.biboer.cn;
|
||||||
|
|
||||||
|
if ($host = sankey.biboer.cn) {
|
||||||
|
return 301 https://$host$request_uri;
|
||||||
|
} # managed by Certbot
|
||||||
|
|
||||||
|
return 404;
|
||||||
|
}
|
||||||
@@ -1,12 +1,20 @@
|
|||||||
import { defineConfig } from 'vite';
|
import { defineConfig } from 'vite';
|
||||||
import vue from '@vitejs/plugin-vue';
|
import vue from '@vitejs/plugin-vue';
|
||||||
import { readFileSync } from 'node:fs';
|
import { readFileSync, existsSync } from 'node:fs';
|
||||||
import { homedir } from 'node:os';
|
import { homedir } from 'node:os';
|
||||||
import { join } from 'node:path';
|
import { join } from 'node:path';
|
||||||
|
|
||||||
const certDir = join(homedir(), 'mac.biboer.cn_ecc');
|
const certDir = join(homedir(), 'mac.biboer.cn_ecc');
|
||||||
const httpsCert = readFileSync(join(certDir, 'fullchain.cer'));
|
const certPath = join(certDir, 'fullchain.cer');
|
||||||
const httpsKey = readFileSync(join(certDir, 'mac.biboer.cn.key'));
|
const keyPath = join(certDir, 'mac.biboer.cn.key');
|
||||||
|
|
||||||
|
// 只在证书存在时启用 HTTPS(开发环境)
|
||||||
|
const httpsConfig = existsSync(certPath) && existsSync(keyPath)
|
||||||
|
? {
|
||||||
|
cert: readFileSync(certPath),
|
||||||
|
key: readFileSync(keyPath)
|
||||||
|
}
|
||||||
|
: undefined;
|
||||||
|
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
plugins: [vue()],
|
plugins: [vue()],
|
||||||
@@ -15,9 +23,6 @@ export default defineConfig({
|
|||||||
port: 5173,
|
port: 5173,
|
||||||
strictPort: true,
|
strictPort: true,
|
||||||
allowedHosts: ['mac.biboer.cn'],
|
allowedHosts: ['mac.biboer.cn'],
|
||||||
https: {
|
https: httpsConfig
|
||||||
cert: httpsCert,
|
|
||||||
key: httpsKey
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user