网站实现动静分离教程
网站实现动静分离的参考教程:
张戈博客教程地址参考:https://zhang.ge/5130.html
大鸟博客教程地址参考:https://www.daniao.org/2590.html
张戈博客的nginx设置参考:
server
{
listen 80;
# HTTPS 配置略
server_name res.zgboke.com; # 改成实际二级域名
index index.html index.htm index.php default.html default.htm default.php;
root /data/wwwroot/zhang.ge;
# 图片等静态资源请求代理到本地主站(关键配置)
location ~* .*\.(js|css|png|jpeg|jpg|bmp|ico|ogg|ogv|svg|svgz|eot|otf|woff|woff2|mp4|ttf|rss|atom|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
add_header Access-Control-Allow-Origin *; # 解决字体跨站问题
add_header Access-Control-Allow-Headers X-Requested-With;
add_header Access-Control-Allow-Methods GET,OPTIONS;
proxy_pass http://127.0.0.1; # 如果是启用了 https 的网站,这里最好改成 https://127.0.0.1,避免主站加了非 https 协议的跳转配置,导致不成功。
proxy_set_header X-Forwarded-For $remote_addr;
proxy_redirect off;
proxy_set_header Host zhang.ge; # 这里改为实际主站域名(必须)
expires max; # 设置浏览器 304 缓存为最长期限
}
# 为这个二级域名额外设置一个 robots 文件
location ~ (robots.txt) {
rewrite /robots.txt /resrobots.txt last; # 在网站根目录新增一个 resrobots.txt,内容和七牛 CDN 类似,禁止搜索引擎抓取非静态资源(resrobots.txt 内容参考:https://zhang.ge/5104.html)
}
# 如果通过静态域名访问的是非静态资源,比如访问了我们的文章页面,则跳到主站对应的页面。
location / {
if ( $request_uri !~* .*\.(js|css|png|jpeg|jpg|gif|bmp|ico|ogg|ogv|svg|svgz|eot|otf|woff|woff2|mp4|ttf|rss|atom|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf))
{
rewrite ^(.*)$ $scheme://zhang.ge$1 permanent; # zhang.ge 修改为实际主站域名
}
}
location ~ /\. { deny all; access_log off; log_not_found off; }
access_log /data/wwwlogs/res.zgboke.com.log access;
}张戈博客评论区发的https动静分离nginx参考:
server
{
listen 80;
listen 443 ssl;
server_name res.firen.cc; # 改成实际二级域名
index index.php index.html index.htm default.php default.htm default.html;
root /home/wwwroot/mrksk.com/wordpress;
#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
#error_page 404/404.html;
#HTTP_TO_HTTPS_START
if ($server_port !~ 443){
rewrite ^(/.*)$ https://res.firen.cc$1 permanent;
#rewrite ^(/.*)$ https://$host$1 permanent;
}
#HTTP_TO_HTTPS_END
ssl_certificate /etc/letsencrypt/live/res.firen.cc/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/res.firen.cc/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
error_page 497 https://res.firen.cc$request_uri;
#error_page 497 https://$host$request_uri;
#SSL-END
#禁止访问的文件或目录
location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
{
return 404;
}
# 图片等静态资源请求代理到本地主站(关键配置)
location ~* .*\.(js|css|png|jpeg|jpg|bmp|ico|ogg|ogv|svg|svgz|eot|otf|woff|woff2|mp4|ttf|rss|atom|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
add_header Access-Control-Allow-Origin *; # 解决字体跨站问题
add_header Access-Control-Allow-Headers X-Requested-With;
add_header Access-Control-Allow-Methods GET,OPTIONS;
proxy_pass http://127.0.0.1;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_redirect off;
proxy_set_header Host mrksk.com; # 这里改为实际主站域名(必须)
expires max; # 设置浏览器304缓存为最长期限
}
# 为这个二级域名额外设置一个robots文件
location ~ (robots.txt) {
rewrite /robots.txt /resrobots.txt last; # 在网站根目录新增一个resrobots.txt,内容和七牛CDN类似,禁止搜索引擎抓取非静态资源(resrobots.txt内容参考:https://zhang.ge/5104.html)
}
# 如果通过静态域名访问的是非静态资源,比如访问了我们的文章页面,则跳到主站对应的页面。
location / {
if ( $request_uri !~* .*\.(js|css|png|jpeg|jpg|gif|bmp|ico|ogg|ogv|svg|svgz|eot|otf|woff|woff2|mp4|ttf|rss|atom|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf))
{
rewrite ^(.*)$ $scheme://mrksk.com$1 permanent; # zhang.ge 修改为实际主站域名
}
}
location ~ /\. { deny all; access_log off; log_not_found off; }
access_log /home/wwwlogs/res.firen.cc.log;
}静态文件WP的替换代码:
加到 functions.php 即可完成替换:
/**
* WordPress CDN 代码版 By 张戈博客
* 原文地址:https://zhang.ge/4905.html
**/
function QiNiuCDN(){
function Rewrite_URI($html){
$domain = 'zhang\.ge'; //填写主站域名,小数点前需要加上反斜杠转义
$static = 'res.zgboke.com'; //填写二级静态域名
//更多静态资源需要替换,可以将后缀加到后面的括号,使用分隔符分割
$html = preg_replace('/http(s|):\/\/'.$domain.'\/wp-([^"\']*?)\.(jpg|png|gif|bmp|jpeg|css|js)/i','//'.$static.'/wp-$2.$3',$html);
return $html;
}
if(!is_admin()){
ob_start("Rewrite_URI");
}
}
add_action('init', 'QiNiuCDN');教程当中resrobots.txt文件内容:
User-agent: * Allow: /robots.txt Allow: /wp-content/ Allow: /*.png* Allow: /*.jpg* Allow: /*.jpeg* Allow: /*.gif* Allow: /*.bmp* Allow: /*.ico* Allow: /*.js* Allow: /*.css* Disallow: /