<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>自托管与建站 on ffff65535</title><link>https://blog.ffff65535.com/categories/%E8%87%AA%E6%89%98%E7%AE%A1%E4%B8%8E%E5%BB%BA%E7%AB%99/</link><description>Recent content in 自托管与建站 on ffff65535</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Fri, 28 Nov 2025 00:00:00 +0800</lastBuildDate><atom:link href="https://blog.ffff65535.com/categories/%E8%87%AA%E6%89%98%E7%AE%A1%E4%B8%8E%E5%BB%BA%E7%AB%99/index.xml" rel="self" type="application/rss+xml"/><item><title>在 Netcup Web Hosting 上部署 EasyImages 2.0 图床</title><link>https://blog.ffff65535.com/posts/2025/11/28/deploy-easyimages-on-netcup-webhosting/</link><pubDate>Fri, 28 Nov 2025 00:00:00 +0800</pubDate><guid>https://blog.ffff65535.com/posts/2025/11/28/deploy-easyimages-on-netcup-webhosting/</guid><description>&lt;p>EasyImages 2.0 是一款轻量级、无数据库依赖的开源图床程序，支持多格式上传、API 调用、水印、鉴黄等功能，非常适合个人或小规模使用。本文将手把手教你如何在 &lt;strong>Netcup 的 Web Hosting&lt;/strong> 环境中部署它。&lt;/p></description></item><item><title>在 Netcup 上修改域名的 Name Servers</title><link>https://blog.ffff65535.com/posts/2025/11/28/netcup-change-nameservers/</link><pubDate>Fri, 28 Nov 2025 00:00:00 +0800</pubDate><guid>https://blog.ffff65535.com/posts/2025/11/28/netcup-change-nameservers/</guid><description>&lt;h1 id="在-netcup-上修改域名的-name-servers">在 Netcup 上修改域名的 Name Servers&lt;/h1>
&lt;p>如果你在 &lt;a href="https://www.netcup.de/">Netcup&lt;/a> 托管了域名，并希望将 DNS 解析切换到自定义的 Name Servers（例如 Cloudflare、自建 DNS 服务器等），需要在 Netcup 的客户控制面板（CCP）中进行设置。以下是详细操作步骤：&lt;/p></description></item><item><title>nextcloud配置缓存</title><link>https://blog.ffff65535.com/posts/2022/03/21/nextcloud-configures-the-cache/</link><pubDate>Mon, 21 Mar 2022 23:27:22 +0800</pubDate><guid>https://blog.ffff65535.com/posts/2022/03/21/nextcloud-configures-the-cache/</guid><description>&lt;p>/config/config.php&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-html" data-lang="html">&lt;span style="display:flex;">&lt;span>&amp;#39;memcache.local&amp;#39; =&amp;gt; &amp;#39;\OC\Memcache\APCu&amp;#39;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&amp;#39;memcache.locking&amp;#39; =&amp;gt; &amp;#39;\OC\Memcache\Redis&amp;#39;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&amp;#39;redis&amp;#39; =&amp;gt; [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#39;host&amp;#39; =&amp;gt; &amp;#39;127.0.0.1&amp;#39;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#39;port&amp;#39; =&amp;gt; 6379,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>],
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>参考文档&lt;/p>
&lt;blockquote>
&lt;p>&lt;a href="https://docs.nextcloud.com/server/14/admin_manual/configuration_server/caching_configuration.html">https://docs.nextcloud.com/server/14/admin_manual/configuration_server/caching_configuration.html&lt;/a>&lt;/p>&lt;/blockquote>
&lt;h3 id="小型私人家庭服务器">&lt;strong>小型/私人家庭服务器&lt;/strong>&lt;/h3>
&lt;p>仅使用 APCu：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-html" data-lang="html">&lt;span style="display:flex;">&lt;span>&amp;#39;memcache.local&amp;#39; =&amp;gt; &amp;#39;\OC\Memcache\APCu&amp;#39; ,
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="小型组织单服务器设置">&lt;strong>小型组织，单服务器设置&lt;/strong>&lt;/h3>
&lt;p>使用 APCu 进行本地缓存，使用 Redis 进行文件锁定：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-html" data-lang="html">&lt;span style="display:flex;">&lt;span>&amp;#39;memcache.local&amp;#39; =&amp;gt; &amp;#39;\OC\Memcache\APCu&amp;#39;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&amp;#39;memcache.locking&amp;#39; =&amp;gt; &amp;#39;\OC\Memcache\Redis&amp;#39;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&amp;#39;redis&amp;#39; =&amp;gt; array(
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	&amp;#39;host&amp;#39; =&amp;gt; &amp;#39;localhost&amp;#39;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	&amp;#39;port&amp;#39; =&amp;gt; 6379,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>),
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="大型组织集群设置">&lt;strong>大型组织，集群设置&lt;/strong>&lt;/h3>
&lt;p>对除本地 memcache 之外的所有内容使用 Redis：&lt;/p></description></item><item><title>EMQX安装</title><link>https://blog.ffff65535.com/posts/2022/03/14/emqx-install/</link><pubDate>Mon, 14 Mar 2022 16:53:00 +0800</pubDate><guid>https://blog.ffff65535.com/posts/2022/03/14/emqx-install/</guid><description>&lt;ol>
&lt;li>
&lt;p>通过 &lt;strong>&lt;a href="https://www.emqx.com/en/downloads/broker?osType=Linux">emqx.io&lt;/a>&lt;/strong> 或 &lt;strong>&lt;a href="https://github.com/emqx/emqx/releases">Github&lt;/a>&lt;/strong> 下载要安装的 EMQX 版本的 zip 包。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>解压zip到自己指定的目录&lt;/p>
&lt;/li>
&lt;li>
&lt;p>打开命令提示符窗口，进入emqx解压目录&lt;/p>
&lt;/li>
&lt;li>
&lt;p>输入命令：bin\emqx start 或者bin\emqx console（会弹出Erlang），启动EMQ&lt;/p></description></item><item><title>EMQX通过webhook统计设备上下线</title><link>https://blog.ffff65535.com/posts/2022/03/14/emqx-devices-through-webhook-statistics/</link><pubDate>Mon, 14 Mar 2022 16:52:00 +0800</pubDate><guid>https://blog.ffff65535.com/posts/2022/03/14/emqx-devices-through-webhook-statistics/</guid><description>&lt;p>修改emqx配置文件&lt;/p>
&lt;!-- raw HTML omitted -->
&lt;!-- raw HTML omitted -->
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>web.&lt;span style="color:#a6e22e">hook&lt;/span>.&lt;span style="color:#a6e22e">url&lt;/span> &lt;span style="color:#f92672">=&lt;/span> http:&lt;span style="color:#75715e">//127.0.0.1:8080/emqx/webhook&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">// 取消这两项的注释&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>web.&lt;span style="color:#a6e22e">hook&lt;/span>.&lt;span style="color:#a6e22e">rule&lt;/span>.&lt;span style="color:#a6e22e">client&lt;/span>.&lt;span style="color:#a6e22e">connected&lt;/span>.&lt;span style="color:#a6e22e">1&lt;/span> &lt;span style="color:#f92672">=&lt;/span> {&lt;span style="color:#e6db74">&amp;#34;action&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;on_client_connected&amp;#34;&lt;/span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>web.&lt;span style="color:#a6e22e">hook&lt;/span>.&lt;span style="color:#a6e22e">rule&lt;/span>.&lt;span style="color:#a6e22e">client&lt;/span>.&lt;span style="color:#a6e22e">disconnected&lt;/span>.&lt;span style="color:#a6e22e">1&lt;/span> &lt;span style="color:#f92672">=&lt;/span> {&lt;span style="color:#e6db74">&amp;#34;action&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;on_client_disconnected&amp;#34;&lt;/span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>打开web管理→ 模块→emqx_web_hook 启动&lt;/p>
&lt;p>post请求接口&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">import&lt;/span> lombok.extern.slf4j.Slf4j;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">import&lt;/span> org.springframework.web.bind.annotation.PostMapping;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">import&lt;/span> org.springframework.web.bind.annotation.RequestBody;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">import&lt;/span> org.springframework.web.bind.annotation.RequestMapping;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">import&lt;/span> org.springframework.web.bind.annotation.RestController;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">/**
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"> * emqx的webhook通知
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"> */&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">@Slf4j&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">@RestController&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">@RequestMapping&lt;/span>(&lt;span style="color:#e6db74">&amp;#34;/emqx/&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">public&lt;/span> &lt;span style="color:#66d9ef">class&lt;/span> &lt;span style="color:#a6e22e">WebHookController&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">@PostMapping&lt;/span>(&lt;span style="color:#e6db74">&amp;#34;/webhook&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">public&lt;/span> &lt;span style="color:#66d9ef">void&lt;/span> &lt;span style="color:#a6e22e">webhook&lt;/span>(&lt;span style="color:#a6e22e">@RequestBody&lt;/span> WebHookRequestBody body) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> System.&lt;span style="color:#a6e22e">out&lt;/span>.&lt;span style="color:#a6e22e">println&lt;/span>(body);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">import&lt;/span> lombok.Data;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">import&lt;/span> java.io.Serializable;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">@Data&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">public&lt;/span> &lt;span style="color:#66d9ef">class&lt;/span> &lt;span style="color:#a6e22e">WebHookRequestBody&lt;/span> &lt;span style="color:#66d9ef">implements&lt;/span> Serializable {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e">/**
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"> * 事件名称
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"> * client.connected	成功接入	客户端认证完成并成功接入系统后
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"> * client.disconnected	连接断开	客户端连接层在准备关闭时
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"> */&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">private&lt;/span> String action;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e">/**
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"> * 客户端 ClientId
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"> */&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">private&lt;/span> String clientid;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e">/**
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"> * 客户端 Username，不存在时该值为 &amp;#34;undefined&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"> */&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">private&lt;/span> String username;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e">/**
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"> * 客户端源 IP 地址
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"> */&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">private&lt;/span> String ipaddress;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e">/**
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"> * 客户端申请的心跳保活时间
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"> */&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">private&lt;/span> Integer keepalive;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e">/**
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"> * 协议版本号
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"> */&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">private&lt;/span> Integer proto_ver;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e">/**
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"> * 时间戳(秒)
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"> */&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">private&lt;/span> Long connected_at;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e">/**
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"> * 错误原因
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"> */&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">private&lt;/span> String reason;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>参考资料：&lt;/p></description></item><item><title>ghost+nginx无限重定向</title><link>https://blog.ffff65535.com/posts/2022/03/14/ghost-nginx-unlimited-redirection/</link><pubDate>Mon, 14 Mar 2022 16:51:58 +0800</pubDate><guid>https://blog.ffff65535.com/posts/2022/03/14/ghost-nginx-unlimited-redirection/</guid><description>&lt;p>修改ngixn配置&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-text" data-lang="text">&lt;span style="display:flex;">&lt;span>server
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> listen 80;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>		listen 443 ssl http2;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> server_name ghost.你的域名.com;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> index index.php index.html index.htm default.php default.htm default.html;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> root /www/wwwroot/ghost.你的域名.com;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> #SSL-START SSL相关配置，请勿删除或修改下一行带注释的404规则
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> #error_page 404/404.html;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> #HTTP_TO_HTTPS_START
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> if ($server_port !~ 443){
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> rewrite ^(/.*)$ https://$host$1 permanent;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> #HTTP_TO_HTTPS_END
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ssl_certificate /www/server/panel/vhost/cert/ghost.你的域名.com/fullchain.pem;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ssl_certificate_key /www/server/panel/vhost/cert/ghost.你的域名.com/privkey.pem;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ssl_prefer_server_ciphers on;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ssl_session_cache shared:SSL:10m;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ssl_session_timeout 10m;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> add_header Strict-Transport-Security &amp;#34;max-age=31536000&amp;#34;;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> error_page 497 https://$host$request_uri;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> #SSL-END
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> #ERROR-PAGE-START 错误页配置，可以注释、删除或修改
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> #error_page 404 /404.html;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> #error_page 502 /502.html;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> #ERROR-PAGE-END
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> #PHP-INFO-START PHP引用配置，可以注释或修改
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>		include enable-php-00.conf;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> #PHP-INFO-END
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> # 拦截请求，直接返回上传的静态图片资源，缓存时间 1 个月
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> location ^~ /content/images {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> alias /www/ghost_site/content/images;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> expires 1M;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> access_log off;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> add_header Cache-Control &amp;#34;public&amp;#34;;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> location ~ ^/(image|javascript|js|css|media|static)/ {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> proxy_pass http://127.0.0.1:2368;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> # root /www/ghost.qinan.co/web/static/;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> access_log off;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> expires 30d;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> # 不缓存 ghost 核心文件（反向代理后台管理）
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> location ^~ /ghost/ {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> proxy_set_header X-Real-IP $remote_addr;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> proxy_set_header X-Forwarded-Proto $scheme;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> proxy_set_header Host $http_host;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> proxy_pass http://127.0.0.1:2368;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> # favicon
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> location = /favicon.ico {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> root /www/ghost_site/core/shared;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> access_log off;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> log_not_found off;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> expires 30d;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> # cache urls
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> # 反向代理博客请求到服务端
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> location / {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> proxy_cache_valid 200 60m;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> proxy_cache_bypass $http_cache_control;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> proxy_redirect off;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> add_header X-Proxy-Cache $upstream_cache_status;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> proxy_ignore_headers X-Accel-Expires Expires Cache-Control;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> # 后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> proxy_set_header Host $host;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> proxy_set_header X-Real-IP $remote_addr;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> proxy_set_header X-Forwarded-Proto https;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> proxy_set_header X-Forwarded-Host $host;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> proxy_pass http://127.0.0.1:2368;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> proxy_max_temp_file_size 0;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> proxy_connect_timeout 90;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> proxy_send_timeout 90;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> proxy_read_timeout 90;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> proxy_buffering off;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> proxy_temp_file_write_size 64k;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> location ~ /\.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> deny all;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> #REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> include /www/server/panel/vhost/rewrite/ghost.你的域名.com.conf;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> #REWRITE-END
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> #禁止访问的文件或目录
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> return 404;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> #一键申请SSL证书验证目录相关设置
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> location ~ \.well-known{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> allow all;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> expires 30d;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> error_log /dev/null;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> access_log /dev/null;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> location ~ .*\.(js|css)?$
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> expires 12h;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> error_log /dev/null;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> access_log /dev/null;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>		access_log /www/wwwlogs/ghost.你的域名.com.log;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> error_log /www/wwwlogs/ghost.你的域名.com.error.log;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>参考资料：&lt;/p></description></item></channel></rss>