因为我的博文中的图片全部是存放在Github
图床中,并使用jsdelivr
进行加速访问,而现在jsdelivr
失效了,导致我博客中的所有图片链接失效了
我现在有个想法, 使用自己的服务器,实现 访问 http://xxx.xxx.com/{user}{store}/***.jpg
后连接到服务器的脚本, 进行一个请求转发, 在服务器里将请求转发给 https://cdn.jsdelivr.net/gh/{user}{store}/***.jpg
进行一个加速访问.
也就是 假设我的域名为 www.hello.com
访问我的域名 www.hello.com
自动跳转到 www.baidu.com
实现只更换服务器的加速链接, 博客内所有图片都可正常访问的功能.
无奈我个人的网络编程基础还很薄弱, 要如何实现这个功能, 望有前辈能够指点
您可以使用Python的Flask框架来实现这个功能,具体步骤如下:
安装Flask:在终端中输入以下命令安装Flask
pip install Flask
创建Flask应用程序:在项目文件夹中创建一个名为app.py的Python文件,并添加以下代码:
python
from flask import Flask, redirect, url_for, request
app = Flask(name)
@app.route('/path:filename')
def redirect_image(filename):
user = 'your_user'
store = 'your_store'
return redirect(f'https://cdn.jsdelivr.net/gh/{user}{store}/{filename}', code=302)
if name == 'main':
app.run(debug=True, host='0.0.0.0', port=80)
这里的your_user和your_store是您在Github上存储图片的用户名和存储库名称,如果您的图片存储在其他地方,可以根据情况更改。
运行应用程序:在终端中输入以下命令运行应用程序
python app.py
配置Web服务器:将Web服务器配置为将所有请求都转发到该应用程序。
如果您使用的是Apache服务器,则可以使用以下配置文件:
apache
<VirtualHost *:80>
ServerName www.hello.com
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://127.0.0.1/
ProxyPassReverse / http://127.0.0.1/
</VirtualHost>
如果您使用的是Nginx服务器,则可以使用以下配置文件:
nginx
server {
listen 80;
server_name www.hello.com;
location / {
proxy_pass http://127.0.0.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
这些配置文件都将所有的请求都转发到应用程序中,应用程序会将请求重定向到jsdelivr加速的地址。
这样,当您的博客中的图片链接失效时,访问您的域名就会自动跳转到您的应用程序,并将请求重定向到jsdelivr加速的地址,使您的图片能够正常访问。