最近在弄自用图床,主要考虑两个点:一是上传必须方便,二是方便管理,我后期如果不打算分享了,可以删除或者屏蔽。

Imgur 是个不错的选择(另一个选择是 OneDrive 但总感觉分享太麻烦),唯一不愉快的地方是近期被墙了,所以做个反代吧。

先上 Nginx 配置:

server {
    listen 80;
    server_name imgur.ihainan.me;
    return 301 https://$host$request_uri;
}

server {
    listen  443 ssl;
    server_name imgur.ihainan.me;

    if ($server_port !~ 443){
        rewrite ^(/.*)$ https://$host$1 permanent;
    }

    location / {
        # Proxy
        proxy_pass https://i.imgur.com/;
        proxy_http_version 1.1;
    		
        # Limitations
        client_max_body_size    1000m;
        proxy_read_timeout 300s;
        proxy_send_timeout 300s;

        # Headers
        proxy_set_header Referer "";
        proxy_set_header User-Agent "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36";
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Upgrade "websocket";
        proxy_set_header Connection "Upgrade";
    }

    ssl_certificate    /etc/letsencrypt/live/ihainan.me/fullchain.pem;
    ssl_certificate_key    /etc/letsencrypt/live/ihainan.me/privkey.pem;
}

SSL 配置、HTTP 转 HTTPS 这些比较简单的就不用多说了,主要是 Referer 设为空来绕过防盗链处理(老实说这样的确不厚道,以及吐槽这个 HTTP 早期的拼写错误),以及 Imgur 对于移动端请求会跳转到 Imgur 官网然后要求你下载 App,所以我直接把 User-Agent 给写死了省事点(也很不厚道…)。

测试地址:

Test Image

另附上油猴脚本,方便在 imgur 页面拷贝 URL:

// ==UserScript==
// @name         Imgur Helper
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       ihainan
// @include      https://imgur.com/a/*
// @grant        none
// @require http://code.jquery.com/jquery-3.3.1.min.js
// ==/UserScript==

(function() {
    'use strict';
    let $ = window.jQuery;
    let pieces = $(".zoom").attr("href").split("/");
    $(".copy-input").val("https://imgur.ihainan.me/" + pieces[pieces.length - 1]);
})();

tampermonkey

参考: