Files
Zncfont_V2/server/DEPLOY.md
2026-03-21 12:29:38 +08:00

193 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 智能查 SEO 部署指南(纯 Nginx 方案)
## 部署步骤
### 1. 本地准备
确保 SEO 模板已生成:
```bash
cd Zncfont_V2/server
node generate-seo-templates.cjs
```
### 2. 上传文件到服务器
将以下文件/目录上传到服务器 `/www/wwwroot/zhinengcha.cn/`
```
zhinengcha.cn/
├── index.html # SPA 入口dist 产物)
├── assets/ # 静态资源dist 产物)
└── seo-templates/ # SEO 静态模板(从 public 复制)
├── index.html
├── agent.html
├── help.html
└── ...
```
### 3. 修改 Nginx 配置
在宝塔面板中,将站点配置修改为以下内容:
```nginx
server
{
listen 80;
listen 443 ssl;
listen 443 quic;
listen [::]:443 ssl;
listen [::]:443 quic;
http2 on;
listen [::]:80;
server_name zhinengcha.cn www.zhinengcha.cn p.zhenaicha.cn;
index index.html index.htm default.htm default.html;
root /www/wwwroot/zhinengcha.cn;
#CERT-APPLY-CHECK--START
include /www/server/panel/vhost/nginx/well-known/zhinengcha.cn.conf;
#CERT-APPLY-CHECK--END
#SSL-START SSL相关配置请勿删除或修改下一行带注释的404规则
#error_page 404/404.html;
ssl_certificate /www/server/panel/vhost/cert/zhinengcha.cn/fullchain.pem;
ssl_certificate_key /www/server/panel/vhost/cert/zhinengcha.cn/privkey.pem;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_prefer_server_ciphers on;
ssl_session_tickets on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
add_header Strict-Transport-Security "max-age=31536000";
add_header Alt-Svc 'quic=":443"; h3=":443"; h3-29=":443"; h3-27=":443";h3-25=":443"; h3-T050=":443"; h3-Q050=":443";h3-Q049=":443";h3-Q048=":443"; h3-Q046=":443"; h3-Q043=":443"';
error_page 497 https://$host$request_uri;
#SSL-END
#ERROR-PAGE-START
#error_page 404 /404.html;
#error_page 502 /502.html;
#ERROR-PAGE-END
#REWRITE-START
include /www/server/panel/vhost/rewrite/html_zhinengcha.cn.conf;
#REWRITE-END
location ~ ^/(\.user.ini|\.htaccess|\.git|\.env|\.svn|\.project|LICENSE|README.md)
{
return 404;
}
location ~ \.well-known{
allow all;
}
location /api/v1 {
proxy_pass http://127.0.0.1:21004;
proxy_set_header Host 127.0.0.1:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
add_header X-Cache $upstream_cache_status;
proxy_set_header X-Host $host:$server_port;
proxy_set_header X-Scheme $scheme;
proxy_connect_timeout 30s;
proxy_read_timeout 86400s;
proxy_send_timeout 30s;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location / {
set $is_bot 0;
if ($http_user_agent ~* "(baiduspider|googlebot|bingbot|msnbot|360spider|sogou|youdaobot|twitterbot|facebookexternalhit|linkedinbot|bytespider)") {
set $is_bot 1;
}
if ($is_bot = 1) {
rewrite ^/$ /seo-templates/index.html last;
}
if ($is_bot = 1) {
rewrite ^/agent$ /seo-templates/agent.html last;
}
if ($is_bot = 1) {
rewrite ^/help$ /seo-templates/help.html last;
}
if ($is_bot = 1) {
rewrite ^/help/guide$ /seo-templates/help-guide.html last;
}
if ($is_bot = 1) {
rewrite ^/example$ /seo-templates/example.html last;
}
if ($is_bot = 1) {
rewrite ^/service$ /seo-templates/service.html last;
}
if ($is_bot = 1) {
rewrite ^/inquire/riskassessment$ /seo-templates/inquire-riskassessment.html last;
}
if ($is_bot = 1) {
rewrite ^/inquire/companyinfo$ /seo-templates/inquire-companyinfo.html last;
}
if ($is_bot = 1) {
rewrite ^/inquire/marriage$ /seo-templates/inquire-marriage.html last;
}
if ($is_bot = 1) {
rewrite ^/promote$ /seo-templates/promote.html last;
}
try_files $uri $uri/ /index.html;
}
if ( $uri ~ "^/\.well-known/.*\.(php|jsp|py|js|css|lua|ts|go|zip|tar\.gz|rar|7z|sql|bak)$" ) {
return 403;
}
location ~ .*\\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
error_log /dev/null;
access_log /dev/null;
}
location ~ .*\\.(js|css)?$
{
expires 12h;
error_log /dev/null;
access_log /dev/null;
}
access_log /www/wwwlogs/zhinengcha.cn.log;
error_log /www/wwwlogs/zhinengcha.cn.error.log;
}
```
### 4. 重载 Nginx
```bash
nginx -t && nginx -s reload
```
## 验证
```bash
# 模拟百度爬虫
curl -A "Baiduspider" https://www.zhinengcha.cn/
# 普通浏览器
curl -A "Chrome" https://www.zhinengcha.cn/
```
## 服务器目录结构
```
/www/wwwroot/zhinengcha.cn/
├── index.html
├── assets/
└── seo-templates/
├── index.html
├── agent.html
├── help.html
├── help-guide.html
├── example.html
├── service.html
├── inquire-riskassessment.html
├── inquire-companyinfo.html
├── inquire-marriage.html
└── promote.html
```