<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://purl.org/rss/1.0/"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel rdf:about="https://eblog.ink/feed/rss/category/%E7%BD%91%E7%AB%99%E9%85%8D%E7%BD%AE/">
<title>Eric&#039;s Blog - 网站配置</title>
<link>https://eblog.ink/category/%E7%BD%91%E7%AB%99%E9%85%8D%E7%BD%AE/</link>
<description></description>
<items>
<rdf:Seq>
<rdf:li resource="https://eblog.ink/archives/402/"/>
<rdf:li resource="https://eblog.ink/archives/401/"/>
<rdf:li resource="https://eblog.ink/archives/399/"/>
<rdf:li resource="https://eblog.ink/archives/359/"/>
<rdf:li resource="https://eblog.ink/archives/254/"/>
<rdf:li resource="https://eblog.ink/archives/240/"/>
<rdf:li resource="https://eblog.ink/archives/175/"/>
<rdf:li resource="https://eblog.ink/archives/170/"/>
<rdf:li resource="https://eblog.ink/archives/167/"/>
<rdf:li resource="https://eblog.ink/archives/153/"/>
</rdf:Seq>
</items>
</channel>
<item rdf:about="https://eblog.ink/archives/402/">
<title>【网站】Docker配置CLIProxyAPI Plus </title>
<link>https://eblog.ink/archives/402/</link>
<dc:date>2026-03-03T06:20:00+00:00</dc:date>
<description>Github地址为 https://github.com/router-for-me/CLIProxyAPI2. 搭建选择一个目录，本文中使用的是/data/CLIProxyAPI运行 mkdir -p /data/CLIProxyAPI &amp;&amp; touch /data/CLIProxyAPI/config.yaml ，创建项目配置文件复制以下项目配置，将 secret-key 修改为你的密码# Server host/interface to bind to. Default is empty (&quot;&quot;) to bind all interfaces (IPv4 + IPv6).
# Use &quot;127.0.0.1&quot; or &quot;localhost&quot; to restrict access to local machine only.
host: &quot;&quot;
# Server port
port: 8317
# TLS settings for HTTPS. When enabled, the server listens with the provided certificate and key.
tls:
  enable: false
  cert: &quot;&quot;
  key: &quot;&quot;
# Management API settings
remote-management:
# Whether to allow remote (non-localhost) management access.
# When false, only localhost can access management endpoints (a key is still required).
  allow-remote: true
# Management key. If a plaintext value is provided here, it will be hashed on startup.
# All management requests (even from localhost) require this key.
# Leave empty to disable the Management API entirely (404 for all /v0/management routes).
  secret-key: &quot;登陆密码&quot;
# Disable the bundled management control panel asset download and HTTP route when true.
  disable-control-panel: false
# GitHub repository for the management control panel. Accepts a repository URL or releases API URL.
  panel-github-repository: &quot;https://github.com/router-for-me/Cli-Proxy-API-Management-Center&quot;
# Authentication directory (supports ~ for home directory)
auth-dir: &quot;~/.cli-proxy-api&quot;
粘贴到刚刚新建的 config.yaml 里 vi /data/CLIProxyAPI/config.yaml然后运行 mkdir -p /data/CLIProxyAPI &amp;&amp; touch /data/CLIProxyAPI/compose.yaml ，创建docker compose文件复制以下docker compose 配置 ,粘贴到刚刚新建的 compose.yaml 里 vi /data/CLIProxyAPI/compose.yamlservices:
  cli-proxy-api:
    image: eceasy/cli-proxy-api:latest
    container_name: cli-proxy-api
    ports:
      - &quot;8317:8317&quot;
    volumes:
      - ./config.yaml:/CLIProxyAPI/config.yaml
      - ./auths:/root/.cli-proxy-api
    restart: unless-stopped
注意：前面个端口可以改为公网端口运行如下命令 cd /data/CLIProxyAPI &amp;&amp; docker compose up -d ，创建容器3. 配置接下来访问 服务器IP:8317/management.html ，进入后台管理页（如果你修改了端口则替换为你的端口），输入你在前面配置的密码（secret-key），登录点击 OAuth 登录、认证文件管理 认证对应的账号就行接下来添加 API 密钥，点击配置面板，下拉到认证配置处，点击添加 API 密钥 ，可自定义或随机生成一个 API 密钥，点击添加，可以看到我们刚刚添加的 API 密钥，点击下方的对号，保存更改4. 使用到此已经完成，可以使用该密钥了，BaseURL 即为你的服务器IP:项目端口，本项目能提供标准的OpenAI API和Claude API一般是：http://localhost:8317/v1API:上面生成的API就可以使用了5. 更新cd /data/CLIProxyAPI && docker compose pull && docker compose up -d</description>
</item>
<item rdf:about="https://eblog.ink/archives/401/">
<title>【网站】 使用cloudflare workers反代 pages</title>
<link>https://eblog.ink/archives/401/</link>
<dc:date>2026-03-03T02:57:57+00:00</dc:date>
<description>代码：addEventListener(&#039;fetch&#039;, event =&gt; {
  event.respondWith(handleRequest(event.request))
})

async function handleRequest(request) {
  // ✅ 使用你的Pages默认地址
  const targetBase = &#039;https://your.pages.dev&#039;

  if (request.headers.get(&#039;Upgrade&#039;) === &#039;websocket&#039;) {
    return fetch(request)
  }

  const url = new URL(request.url)
  const newUrl = new URL(url.pathname + url.search, targetBase)
  
  const newHeaders = new Headers(request.headers)
  newHeaders.set(&#039;Host&#039;, newUrl.hostname)
  
  const newRequest = new Request(newUrl, {
    method: request.method,
    headers: newHeaders,
    body: request.body,
    redirect: &#039;manual&#039;
  })

  const response = await fetch(newRequest)
  
  if ([301, 302, 303, 307, 308].includes(response.status)) {
    const location = response.headers.get(&#039;Location&#039;)
    if (location &amp;&amp; location.includes(targetBase)) {
      return Response.redirect(
        location.replace(targetBase, `https://${url.hostname}`),
        response.status
      )
    }
  }
  
  return response
}</description>
</item>
<item rdf:about="https://eblog.ink/archives/399/">
<title>【网站】记录利用cloudflare加速</title>
<link>https://eblog.ink/archives/399/</link>
<dc:date>2026-01-15T02:19:00+00:00</dc:date>
<description>准备两个域名：1.主1.com  备2.com 2.备解析一个子域名到网站IP 并开启小黄云 例如：orange.2.com3.备解析一个子域名到优选域名 （CNAME）,例如解析CNAME,cdn.2.com,到115155.xyz4.备的SSL/TLS设置-自定义主机名-添加回退源为开启小黄云的orange.2.com（步骤需要添加信用卡）5.还是步骤4这个位置 添加自定义主机名 填写1.com就是需要加速的域名（进入只需要填写域名其它都默认）然后验证TXT6.进入1.com 使用CNAME到 上面的cdn.2.com就可以了</description>
</item>
<item rdf:about="https://eblog.ink/archives/359/">
<title>【域名】sitelutions免费二级域名 DDNS方法</title>
<link>https://eblog.ink/archives/359/</link>
<dc:date>2023-07-27T01:24:00+00:00</dc:date>
<description>Sitelutions 提供数种免费二级域名（Free subdomain），其中最短的域名为rr.nu。目前还可以申请注册！但是官方不给非会员用户提供解析服务。不过我们可以借助其他DNS服务商来继续使用免费二级域名官方网站https://www.sitelutions.com1.注册账号，申请二级域名2.修改二级域名NS信息，本文采用he.net申请域名1.访问：【Account Control】 - 【URL and DNS】 - 【Add Subdomain】2.输入可用的域名，点击【Add Host】即可3，管理界面可见刚申请的域名，可以修改域名的NS服务器地址，利用其他DNS服务商来解析！NS解析目前rr.nu无法在cloudflare 和 DNSPod中添加。不过在老牌DNS服务商 he.net可用。1，点击修改NS记录，添加 he.net NS服务地址域名管理 - 【Advanced Config & DDNS】- 【NS Records】- 【Add Record】特别提醒，NS服务地址后面需要有个点！否则不会生效！ns1.he.net.
ns2.he.net.
ns3.he.net.
ns4.he.net.
ns5.he.net.
2，检查域名NS记录是否生效（非必须）3，访问 he.net 添加域名即可4，按需添加域名解析即可HE.NET DDNS方法HE.NET DDNS官方文档：https://dns.he.net/docs.html此方法可以应用于需要使用DDNS动态域名的Liunx NAT小鸡，不需要安装插件，需要用到crontab1、在HE DNS中建立一个A/AAAA记录，并Enable entry for dynamic dns2、建立好后，在记录右侧设置DDNS KEY，可以点随机生成，记得保存好此KEY信息，如果忘记了可以重新生成保存3、由HE.NET提供的官方文档，自动更新IP地址的命令为（curl -4 是ipv4，curl -6 根据自己NAT小鸡的IP类型选择）Autodetect my IPv4/IPv6 address:

% curl -4 &quot;https://dyn.example.com:password@dyn.dns.he.net/nic/update?hostname=dyn.example.com&quot;                    
% curl -6 &quot;https://dyn.example.com:password@dyn.dns.he.net/nic/update?hostname=dyn.example.com&quot;    
按照以上命令，我们把其中的’password’，替换成刚刚生成的随机KEY，’dyn.example.com’替换成需要解析的域名全址举个例子吧，假如随机KEY为’mwNQPymNOtrpzrGE’，DDNS域名为’ddns.heyuan0028.com’那么此DDNS命令为：curl -4 &quot;https://ddns.heyuan0028.com:mwNQPymNOtrpzrGE@dyn.dns.he.net/nic/update?hostname=ddns.heyuan0028.com&quot;

curl -6 &quot;https://ddns.heyuan0028.com:mwNQPymNOtrpzrGE@dyn.dns.he.net/nic/update?hostname=ddns.heyuan0028.com&quot; 

4、修改好更新命令后，只需要在小鸡crontab添加定时任务即可，推荐为每5分钟运行一次，示例：*/5 * * * * curl -4 &quot;https://dyn.example.com:mwNQPymNOtrpzrGE@dyn.dns.he.net/nic/update?hostname=ddns.heyuan0028.com&quot;      
*/5 * * * * curl -6 &quot;https://dyn.example.com:mwNQPymNOtrpzrGE@dyn.dns.he.net/nic/update?hostname=ddns.heyuan0028.com&quot;

原文链接：链接1 链接2</description>
</item>
<item rdf:about="https://eblog.ink/archives/254/">
<title>LNMP 多版本PHP运行</title>
<link>https://eblog.ink/archives/254/</link>
<dc:date>2020-12-16T02:43:02+00:00</dc:date>
<description>1.安装多版本进入lnmp的安装目录 执行 ./upgrade.sh mphp2.配置并启动php默认版本：（设置 nginx 的 vhost 域名配置文件监听端口就好）1）.打开域名配置文件cd /usr/local/nginx/conf/vhost/

vim yourdomain.com.conf
2）.修改fastcgi_pass参数。若希望该站点使用php5，则配置成：fastcgi_pass   /tmp/php-cgi.sock;

demo：

 

location ~ \.php/?.*$ {

            root  /home/wwwroot/tpshop;

            fastcgi_pass  unix:/tmp/php-cgi.sock;

            fastcgi_index  index.php;

            fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;   

            include fastcgi_params;

若希望该站点使用php7，则配置成：fastcgi_pass   php-cgi7.0.sock;

 

 demo：

 location ~ \.php/?.*$ {

            root  /home/wwwroot/tpshop;

            fastcgi_pass  unix:/tmp/php-cgi7.0.sock;

            fastcgi_index  index.php;

            fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;   

            include fastcgi_params;
最后刷新php-fpm 用 ps -ef | grep php-fpm 命令查fpm端口然后使用下面的命名就可以了。  kill -SIGUSR2 7515
至此，配置启动多版本php完成。</description>
</item>
<item rdf:about="https://eblog.ink/archives/240/">
<title>利用Cloudflare Workers搭建反向代理</title>
<link>https://eblog.ink/archives/240/</link>
<dc:date>2020-08-18T03:59:00+00:00</dc:date>
<description>1.登录CF账号点击进去登录界面2.点击worker界面3.新建一个worker4.复制代码点击复制代码5.反代问题如果需要反代其他的网站https://etherdream.github.io/jsproxy这个地址修改了就可以了</description>
</item>
<item rdf:about="https://eblog.ink/archives/175/">
<title>升级 nginx 1.15 后出现的 [warn]</title>
<link>https://eblog.ink/archives/175/</link>
<dc:date>2019-03-29T13:06:00+00:00</dc:date>
<description>报错代码为：nginx: [warn] the &quot;ssl&quot; directive is deprecated, use the &quot;listen ... ssl&quot; directive instead in /usr/local/nginx/conf/nginx.conf

问题分析这是一个warn警告，nginx也能正常使用，但是由于强迫症，还是要把warn解决掉。根据翻译，nginx提示ssl这个指令已经不建议使用，要使用listen ... ssl替代。网上查找nginx更新日志里面，也有提到：Change: the “ssl” directive is deprecated; the “ssl” parameter of the “listen” directive should be used instead.
ssl不建议作为一个指令使用，而是应该listen指令的一个参数。解决方法如果使用listen 443 ssl，删除ssl on就行了。原文</description>
</item>
<item rdf:about="https://eblog.ink/archives/170/">
<title>Typecho国内无法使用Gravatar的解决方法</title>
<link>https://eblog.ink/archives/170/</link>
<dc:date>2019-03-11T08:43:00+00:00</dc:date>
<description>Typecho评论默认使用的是Gravatar头像，但因为众所周知的原因，Gravatar在国内无法正常访问，会导致页面访问速度奇慢，也是在昨天把长期挂在电脑的梯子关掉之后才发现这一问题，遂寻找解决方法，在网上搜索了一番，找到了合适的解决方案：可以利用V2EX 的CDN，具体做法：找到手动修改文件var/Typecho/Common.php的937行。将如下代码：public static function gravatarUrl($mail, $size, $rating, $default, $isSecure = false)
{
    $url = $isSecure ? &#039;https://secure.gravatar.com&#039; : &#039;http://www.gravatar.com&#039;;
    $url .= &#039;/avatar/&#039;;

    if (!empty($mail)) {
        $url .= md5(strtolower(trim($mail)));
    }

    $url .= &#039;?s=&#039; . $size;
    $url .= &#039;&amp;amp;r=&#039; . $rating;
    $url .= &#039;&amp;amp;d=&#039; . $default;

    return $url;
}
替换为：public static function gravatarUrl($mail, $size, $rating, $default, $isSecure = false)
{
    $url = $isSecure ? &#039;https://cdn.v2ex.com/gravatar/&#039; : &#039;http://gravatar.duoshuo.com/avatar/&#039;;

    if (!empty($mail)) {
        $url .= md5(strtolower(trim($mail)));
    }

    $url .= &#039;?s=&#039; . $size;
    $url .= &#039;&amp;amp;r=&#039; . $rating;
    $url .= &#039;&amp;amp;d=&#039; . $default;

    return $url;
}
替换之后，原来Gravatar头像直接通过V2EX 的CDN访问，速度大大提升了。替换前替换后原文链接</description>
</item>
<item rdf:about="https://eblog.ink/archives/167/">
<title>Linux 下MySQL 互为主从设置</title>
<link>https://eblog.ink/archives/167/</link>
<dc:date>2019-03-09T04:36:00+00:00</dc:date>
<description>MySql互为主从复制，其中的一台发生变化，另外一台也马上发生变化，并且都能向外提供服务。 这就比使用主从复制具有更好的性能。server1：192.168.1.10server2: 192.168.1.201.创建用户并授权server1:mysql -u root -p输入mysql的root密码mysql&gt; GRANT ALL PRIVILEGES ON *.* TO &#039;SLAVEROOT&#039;@&#039;192.168.1.20&#039;  IDENTIFIED BY &#039;SLAVEROOT&#039;;server2:mysql -u root -p输入mysql的root密码mysql&gt; GRANT ALL PRIVILEGES ON *.* TO &#039;SLAVEROOT&#039;@&#039;192.168.1.10&#039;  IDENTIFIED BY &#039;SLAVEROOT&#039;;2.修改Mysql的主配置文件配置文件一般放在/etc/my.cnf这个位置，实际就根据安装的具体情况了；server1: [mysqld]
 server-id = 10
 log-bin = mysql-bin
 replicate-do-db = 数据库名  //需要同步的数据库
 auto-increment-increment = 2   //每次增长2
 auto-increment-offset = 1  //设置自动增长的字段的偏移量，即初始值为1启动Mysql服务：
修改完成过后重启：
# service mysqld restart
军哥LNMP mysql管理方法：
/etc/init.d/mysql {start|stop|restart|reload|force-reload|status}server2: [mysqld]
 server-id = 20
 log-bin = mysql-bin
 replicate-do-db = 数据库名  //需要同步的数据库
 auto-increment-increment = 2  //每次增长2
 auto-increment-offset = 2 //设置自动增长的字段的偏移量，即初始值为2
启动Mysql服务：
修改完成过后重启：
# service mysqld restart
军哥LNMP mysql管理方法：
/etc/init.d/mysql {start|stop|restart|reload|force-reload|status}
注：二都只有server-id不同和 auto-increment- offset不同auto-increment-increment的值应设为整个结构中服务器的总数，本案例用到两台服务器，所以值设为2。如果是三台服务器，每一台auto-increment-increment后面设为3，偏移量，初始值也就设为了1，2，3；4.为了让两个数据库一样，我们备份其中一个数据库，然后在另一个数据库上恢复，这样是两个数据库一开始都是一样的。在server1上操作:# mysqldump --databases 数据库名 &gt; /tmp/数据库名.sql
在server2上操作：创建一个与上面同名的空数据库# mysql
    &gt; CREATE DATABASE 数据库名;
    &gt;\q
# scp 192.168.1.108:/tmp/数据库名.sql  ./
# mysql -uroot -p 数据库名 &lt; /tmp/数据库名.sql
5.然后两个服务器相互通告二进制日志的位置并启动复制功能：在server1上：mysql&gt;CHANGE MASTER TO
MASTER_HOST=&#039;192.168.1.20&#039;,
MASTER_USER=&#039;SLAVEROOT&#039;,
MASTER_PASSWORD=&#039;SLAVEROOT&#039;;
mysql &gt; START SLAVE;在server2上：mysql&gt;CHANGE MASTER TO
MASTER_HOST=&#039;192.168.1.10&#039;,
MASTER_USER=&#039;SLAVEROOT&#039;,
MASTER_PASSWORD=&#039;SLAVEROOT&#039;;
mysql &gt; START SLAVE;6.查看并验证是否成功mysql &gt; SHOW SLAVE STATUS\G;Slave_IO_Running: Yes
Slave_SQL_Running: Yes
这两行显示为这样就代表成功了，在使用中可能用到哪些管理命令呢？做一下记录附：1.同步管理开始同步mysql&gt; START SLAVE;停止同步mysql&gt; STOP SLAVE;2.删除同步账号mysql&gt;use mysql;mysql&gt;delete from user where user=&#039;SLAVEROOT&#039; and host=&#039;你的对应IP地址&#039;;3.清除同步信息首先需要停止同步，然后使用以下代码：mysql&gt; reset slave all; 4.如果日志文件太多，或者过大需要清理首先确认哪个数据文件是正在使用的mysql&gt;show master status\G ;mysql&gt;show slave status\G ;或者查看当前的日志文件mysql&gt;show binary logs;然后删除现在使用日志之前的日志：mysql&gt;PURGE MASTER LOGS TO'mysql-bin.000016';或者设置日志过期时间：mysql&gt; set global expire_logs_days = 30;5.在复制的时候报错Last_SQL_Errno: 1146解决： set global sql_slave_skip_counter=20;如果一条解决不了可以多复制几条然后：stop slave;
start slave;或者：在从服务器上设置忽略该错.在my.cnf文件中添加“slave-skip-errors = 1146 ;”，</description>
</item>
<item rdf:about="https://eblog.ink/archives/153/">
<title>Nginx 开启http强制跳转https</title>
<link>https://eblog.ink/archives/153/</link>
<dc:date>2019-01-18T09:37:00+00:00</dc:date>
<description>Nginx 下由http强制跳转https 的几种方法:方法一 （这是最古老的写法，不推荐）rewrite ^(.*)$  https://$host$1 permanent; 

方法二  （比较推荐）return     301 https://$server_name$request_uri; 

方法三 如果你有多个域名绑定在一起，可以只设定某些域名强制跳转if ($host = &quot;你的域名&quot;) {

       rewrite ^/(.*)$ https://你的域名 permanent;

    }

方法四方法四跟之前的都不一样，我们不需要另外监听 443 端口的 server，而是都放在一起，像这样listen 80;

listen 443 ssl http2;

server_name 你的域名;

if ($server_port !~ 443){

    rewrite ^(/.*)$ https://$host$1 permanent;

}</description>
</item>
</rdf:RDF>