欢迎来到冉冉博客的技术教程。今天分享Elasticsearch深度使用的实战经验,这些都是我在网站编程过程中总结的最佳实践。
一、Git 高级用法与团队协作
Git 是现代开发必备的版本控制工具。掌握高级技巧能让团队协作更高效,减少冲突和错误。
1.1 Git 工作流与分支管理
# 推荐的分支策略
main # 稳定版本
develop # 开发分支
feature/* # 新功能分支
git checkout -b feature/user-auth main
git add .
git commit -m "feat: 添加用户认证功能"
git push -u origin feature/user-auth
git checkout main
git merge feature/user-auth
1.2 Git 高级命令
git stash
git stash push -m "临时修改"
git stash list
git stash pop
git rebase -i HEAD~3
git bisect start
git bisect bad
git bisect good v1.0.0
二、Docker 容器化部署实战
Docker 改变了软件的交付方式。掌握 Docker 的使用,能实现”在我机器上能跑”到生产环境的一致性部署。
2.1 Dockerfile 最佳实践
FROM node:18-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
RUN npm run build
FROM nginx:alpine
COPY --from=builder /app/dist /usr/share/nginx/html
COPY nginx.conf /etc/nginx/nginx.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
2.2 Docker Compose 编排
version: '3.8'
services:
app:
build: .
ports:
- "3000:3000"
environment:
- NODE_ENV=production
depends_on:
db:
condition: service_healthy
restart: unless-stopped
db:
image: postgres:15-alpine
volumes:
- pgdata:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U user -d blog"]
interval: 10s
timeout: 5s
volumes:
pgdata:
三、Nginx 高性能配置
Nginx 是最流行的 Web 服务器和反向代理。掌握其配置技巧,能显著提升网站性能和安全性。
3.1 反向代理与负载均衡
upstream backend {
least_conn;
server app1:3000 weight=3;
server app2:3000 weight=2;
server app3:3000;
keepalive 32;
}
server {
listen 443 ssl http2;
ssl_protocols TLSv1.2 TLSv1.3;
location / {
proxy_pass http://backend;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
3.2 缓存与安全配置
location / {
proxy_cache_path /var/cache/nginx levels=1:2
keys_zone=STATIC:10m
max_size=1g inactive=60m;
proxy_cache STATIC;
proxy_cache_valid 200 60m;
add_header X-Cache-Status $upstream_cache_status;
}
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
四、VS Code 效率配置
VS Code 是冉冉博客的首选编辑器。合理配置和使用快捷键,能大幅提升编码效率。
4.1 settings.json 配置
{
"editor.fontSize": 14,
"editor.tabSize": 2,
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"git.autofetch": true,
"git.confirmSync": false
}
4.2 常用快捷键
Ctrl+P # 快速打开文件
Ctrl+Shift+P # 命令面板
Ctrl+Shift+K # 删除整行
Ctrl+Shift+L # 选中所有相同内容
Alt+Shift+下 # 向下复制行
Ctrl+D # 选中下一个相同内容
F2 # 重命名符号
五、CI/CD 自动化部署
自动化部署是现代开发的标配。从代码提交到生产环境,全程自动化,省时省力。
5.1 GitHub Actions 工作流
name: Deploy
on:
push:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '18'
- run: npm ci
- run: npm run lint
- run: npm run test
deploy:
needs: test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Deploy to server
run: |
doctl compute ssh SERVER_IP --command "cd /app && git pull && docker-compose up -d"
5.2 自动备份策略
#!/bin/bash
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR="/opt/backups"
mysqldump -u$DB_USER -p$DB_PASS $DB_NAME | gzip > $BACKUP_DIR/db_$DATE.sql.gz
tar -czf $BACKUP_DIR/files_$DATE.tar.gz /var/www/blog
find $BACKUP_DIR -name "*.gz" -mtime +7 -delete
rclone copy $BACKUP_DIR gdrive:backups/blog --max-age 24h
echo "备份完成: $DATE"
通过本文的学习,相信你已经掌握了Elasticsearch深度使用的核心要点。冉冉博客会持续分享更多实用技术教程,欢迎持续关注。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
















暂无评论内容