一、背景:
服务器:服务器用的是Centos7系统,用Docker部署FTP和Nginx服务;
用户端:Windows系统,VS写的程序发布到FTP上传到Nginx文件服务,实现exe程序自动更新。
好处:对比发布到本地或共享文件夹形式,发布到ftp无需手输域账户,对于多程序部署,不同设备以及数量庞大情况下也能自动更新程序版本,一劳永逸。
二、搭建Nginx文件服务
参考我上一篇文章:Docker快速部署Nginx文件服务
三、搭建FTP服务器
使用Docker运行FTP容器:(这里我用的21111端口,ftp-eap命名,账号admin ,密码admin)
关键点:第7行“-v ~/nginx_web:/home/ftpuser \”的路径~/nginx_web要与Nginx配置的路径一致!!!很重要!!!
docker run -d --name ftp-eap -p 21111:21 -p 30000-30009:30000-30009 -e FTP_USER_NAME=admin -e FTP_USER_PASS=admin -e FTP_USER_HOME=/home/ftpuser -e PUBLICHOST=10.164.19.112 -v ~/nginx_web:/home/ftpuser stilliard/pure-ftpd:hardened
确保防火墙允许必要的端口(HTTP端口80和FTP端口21111以及被动端口30000-30009):
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=21111/tcp
sudo firewall-cmd --permanent --add-port=30000-30009/tcp
sudo firewall-cmd --reload
四、测试FTP服务器
使用FTP客户端(如FileZilla)连接到您的FTP服务器,使用Docker运行FTP容器时设置的admin
账户进行登录。filezilla官网(免费)
服务器地址: ftp://<your_server_ip>
用户名: admin
密码: admin
你应该能够上传文件到 /root/nginx_web目录。
FileZilla客户端设置:
五、VS发布windows桌面应用程序
桌面应用程序设置:
这里我的FTP服务端口为21111:ftp://ip:21111/;Nginx端口为36521:http://ip:36521/
(因人而异)