在上壹篇中我們介紹了ipfs是什麽,以及ipfs的安裝和簡單使用。沒有了解的讀者請點擊以下

ipfs教程(1)ipfs簡介和安裝
今天起,我將開一系列教程,一步一步完成實戰的ipfs的應用,期間會穿插很多nodejs知識和react知識,希望對大家有幫助

下面我們要達成的目標的如何使用公共節點作為自己的圖床。

首先需要一臺裝有ubuntu server的vps,本文使用ubuntu18.04, 另外您還需要一個解析到此伺服器的域名:假設是yourdomain.com,實際過程中請替換成自己的真實域名。

下面開始搭建:

創建ipfs服務,並且所有開機啓動

注意:要將ipfsuser替換成您當前使用ipfs的linux user

$ sudo bash -c 'cat >/lib/systemd/system/ipfs.service <<EOL
[Unit]
Description=ipfs daemon
[Service]
ExecStart=/usr/local/bin/ipfs daemon --enable-gc --writable
Restart=always
User=ipfsuser
Group=sudo
[Install]
WantedBy=multi-user.target
EOL' 

啓動服務,加入開機啓動:

sudo systemctl daemon-reload
sudo systemctl enable ipfs.service
sudo systemctl start ipfs
sudo systemctl status ipfs

爲了方便後續的開發,我們需要先對ipfs進行一些設置

ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "GET", "POST", "OPTIONS"]'
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["*"]'
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Credentials '["true"]'
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Headers '["Authorization"]'
ipfs config --json API.HTTPHeaders.Access-Control-Expose-Headers '["Location"]'
sudo systemctl restart ipfs # 設置完成後需要重啓服務

使用nginx代理ipfs的api和gateway

首先安裝nginx

sudo apt install nginx -y

簡單配置nginx

# /etc/nginx/site-enable/yourdomain.com.conf
server {
  server_name yourdomain.com;
  location / {
        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;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;
        proxy_pass http://127.0.0.1:5001;
        proxy_redirect off;
        # Socket.IO Support
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
  }
  location /ipfs/
  {
    proxy_pass http://127.0.0.1:8080;
  }
}

重啓nginx:

sudo nginx -s reload

現在訪問yourdomain.com/webui可以訪問您的ipfs節點管理界面,若是上傳了圖片,就可以通過的yourdomain.com/ipfs/您的文件的cid

SSL?

是的,https是現代web的安全標準。但是本篇不再累述,爲了方便本地開發測試,我們暫時不使用https。https的配置在下面的教程中將會說明,敬請期待。

我們會退出更多教程,歡迎收藏taosim.net

感謝閱讀! 

——巫小蠻