使用Cloudflared tunnel做一个直通公网发布的wordpress

家里没有公网,也没有个人vps服务器的,可以用Cloudflare 提供的tunnel直通家里局域网的NAS做一个代理的个人blog,使用docker compose命令如下:

docker-compose.yaml
services:
  wordpress:
    image: wordpress:latest
    restart: always
   # mapping? -> because I want to access the service on my LAN as well
    ports:
      - 80:80
    environment:
      WORDPRESS_DB_HOST: wordpress-db:3306
      WORDPRESS_DB_USER: wordpressuser
      WORDPRESS_DB_PASSWORD: pass
      WORDPRESS_DB_NAME: wordpress
    volumes:
        - ./wp-content:/var/www/html/wp-content # Persist themes, plugins, uploads
    depends_on:
      - wordpress-db

  wordpress-db:
    image: mariadb:latest # Or mysql:latest
    restart: always
    environment:
      MARIADB_DATABASE: wordpress
      MARIADB_USER: wordpressuser
      MARIADB_PASSWORD: pass
      MARIADB_ROOT_PASSWORD: pass
    volumes:
        - db_data:/var/lib/mysql # Persist database data

  wordpress-cf-tunnel:
    image: cloudflare/cloudflared
    restart: unless-stopped
    command: tunnel run
    environment:
        - TUNNEL_TOKEN=${CLOUDFLARE_TUNNEL_TOKEN} # 映射.env的token

运行后在cloudflare的tunnel管理界面,填入需要转发的流量服务器和端口,服务器就是docker-compose.yaml里面你的service名字,这里是wordpress

firefox_vXjiFUhok9

这样子直接访问你的映射到域名就可以直接在公网访问自己的个人blog了。

参考资料:

https://community.cloudflare.com/t/cloudflared-tunnel-in-docker-compose-some-times-it-works-some-times-it-does-not/473227/7

https://www.digitalocean.com/community/tutorials/how-to-install-wordpress-with-docker-compose