建站
本文为大家准备了一系列建站教程。
📘 Nginx 最简单的站点配置
创建站点目录
假设你的站点已经编译好了,并且文件都会放在以下目录
terminal
# 创建目录
mkdir -p /var/www/digvps/dist
# 配置权限
chown -R www-data:www-data /var/www/digvps
创建配置文件:无 server_name,IP 或任何 Host 都能访问。
terminal
vi /etc/nginx/sites-available/digvps.conf
conf
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/digvps/dist;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
}
创建配置文件(可选)
如果服务器打算部署多个站点,则需要指定域名访问。 把 server_name 中的域名替换成你自己的即可。
conf
server {
listen 80;
listen [::]:80;
server_name digvps.com www.digvps.com;
root /var/www/digvps/dist;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
}
启用配置
terminal
sudo ln -s /etc/nginx/sites-available/digvps.conf /etc/nginx/sites-enabled/
检查并重启 Nginx
terminal
sudo nginx -t
sudo systemctl reload nginx
Cloudflare CDN 配置
传送门:开启 CDN
📘 Nginx Proxy Manager 站点反代
Nginx Proxy Manager 是一个基于 Nginx 的开源工具,提供用户友好的 Web 界面,用于轻松管理反向代理、SSL/TLS 证书、域名解析和访问控制等网络配置。
视频教程
请务必结合视频教程食用,因为细节内容都在视频中讲解,本文主要供小伙伴们拷贝代码用途。
安装 Docker
屏蔽IPV6(可选)
terminal
# 编辑 sysctl.conf
vim /etc/sysctl.conf
# 以下行以禁用 IPv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
# 加载新配置
sysctl -p
点击传送门开始安装。
安装 Nginx Proxy Manager
Docker Compose 配置文件
yml
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
运行 Nginx Proxy Manager
terminal
# 启动
docker compose up -d
# 停止
docker compose down
# 查看日志
docker composoe logs -f
📘 Astro 🍥Fuwari 主题建站部署
本文教各位部署基于 Astro 的 🍥Fuwari 静态博客主题。
相关技术栈:Astro、Node.js、pnpm、Nginx
开发环境
安装 Node.js 和 pnpm
访问 Node.js 官方选择平台进行安装。
创建项目
terminal
pnpm create fuwari@latest
配置
编辑 src/config.ts 文件进行博客配置。
启动本地开发服务器
terminal
pnpm dev
创建新文章
使用命令 pnpm new-post <filename> 或者直接在 src/content/posts/ 目录中创建文件。
其他命令(可选)
下列指令均需要在项目根目录执行:
| Command | Action |
|---|---|
pnpm install | Installs dependencies |
pnpm dev | Starts local dev server at localhost:4321 |
pnpm build | Build your production site to ./dist/ |
pnpm preview | Preview your build locally, before deploying |
pnpm check | Run checks for errors in your code |
pnpm format | Format your code using Biome |
pnpm new-post <filename> | Create a new post |
pnpm astro ... | Run CLI commands like astro add, astro check |
pnpm astro --help | Get help using the Astro CLI |
部署
📘 WordPress 部署教程
WordPress 站点部署教程涉及的技术栈:Docker、Nginx、MySQL、Redis、Cloudflare CDN
准备工作
更新系统软件源
terminal
apt update
创建 Swap 文件(可选)
terminal
# 查看目前使用情况
swapon --show
# 创建 Swap 文件
fallocate -l 2G /swapfile
# 设置权限
chmod 600 /swapfile
# 配置 Swap 空间
mkswap /swapfile
# 激活 Swap
echo '/swapfile none swap sw 0 0' | tee -a /etc/fstab
# 重启系统之后验证
swapon --show
free -mh
Swap 内核配置(可选)
/etc/sysctl.conf
# 编辑文件
# 如果是 Debian 13 请使用这个路径 /etc/sysctl.d/sysctl.conf
vi /etc/sysctl.conf
# 添加以下行
vm.swappiness=10
# 应用变动
sysctl --system
安装 Docker
请查看Nginx Proxy Manager 站点反代文档中的安装 Docker章节。
WordPress 安装
Docker 容器配置文件
docker-compose.yml
services:
db:
image: mysql:5.7
volumes:
- './db_data:/var/lib/mysql'
restart: always
environment:
MYSQL_ROOT_PASSWORD: your_mysql_password
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: your_wordpress_password
redis:
image: redis:latest
restart: always
entrypoint: redis-server --appendonly yes --requirepass your_redis_password --maxmemory 512mb --maxmemory-policy allkeys-lru
ports:
- "6379"
volumes:
- './redis_data:/data'
- '/etc/timezone:/etc/timezone:ro'
wordpress:
depends_on:
- db
- redis
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: your_wordpress_password
WORDPRESS_DB_NAME: wordpress
WORDPRESS_CONFIG_EXTRA: |
/* Redis configuration */
define('WP_REDIS_HOST','redis');
define('WP_REDIS_PORT','6379');
define('WP_REDIS_PASSWORD','your_redis_password');
define('WP_CACHE_KEY_SALT','your_salt_key');
define('WP_CACHE',true);
REDIS_HOST: redis
volumes:
- './wp_content:/var/www/html/wp-content'
nginx:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
depends_on:
- wordpress
Nginx 配置文件
nginx.conf
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log combined;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# Set the maximum allowed file size for uploads
client_max_body_size 10M;
server {
listen 80;
server_name domain.local;
location / {
proxy_pass http://wordpress:80;
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_set_header X-Forwarded-Proto $scheme;
}
}
}
Cloudflare 配置
清除 DNS 缓存(可选)
# macOS
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
# Windows
ipconfig /flushdns
📘 Wallos 账单管理
开源的个人订阅跟踪器
视频教程
Docker 配置文件
docker-compose yaml
version: '3.0'
services:
wallos:
container_name: wallos
image: bellamy/wallos:latest
ports:
- "8282:80/tcp"
environment:
TZ: 'America/Toronto'
# Volumes store your data between container upgrades
volumes:
- './db:/var/www/html/db'
- './logos:/var/www/html/images/uploads/logos'
restart: unless-stopped

