proxypool手把手部署到VPS

技术文档网 2021-06-30

由于前端页面的显示固定了使用https,但proxypool没有添加https中间件的支持只支持http。推荐使用nginx的reverse proxy支持域名的https。以下以Ubuntu为例说明简单的步骤。

需要准备

  • 一个申请好并添加了DNS解析的的域名(freenom可以申请免费域名并解析)
  • 一台具有管理员权限的VPS
  • 具有使用ssh登录VPS与基本命令行操作的技能

如果以上超纲了,请使用README中的heroku部署。

此教程nginx之后部分适用于没有申请ssl证书的域名。如果自己已经有证书,需要自行配置nginx的ssl。

1 部署到VPS

登录到VPS后,下载编译好的版本。

wget https://github.com/xiaofei-ya/proxypool/releases/download/v0.5.3/proxypool-linux-amd64-v0.5.3.gz # 下载
gzip -d proxypool-linux-amd64-v0.5.3.gz # 解压
mv proxypool-linux-amd64-v0.5.3 proxypool #重命名
chmod 755 proxypool # 赋予执行权限

再自行下载配置文件(config.yaml与source.yaml),放在与proxypool相同目录下。

wget https://raw.githubusercontent.com/xiaofei-ya/proxypool/master/config/config.yaml
wget https://raw.githubusercontent.com/xiaofei-ya/proxypool/master/config/source.yaml

在config.yaml中的port字段设置运行的端口。留空为12580source字段更改为./source.yaml所有字段均可自行按需更改

注意,如果你的环境变量中有PORT字段,会以环境变量优先。
如果端口和已经运行的程序冲突请自行更改端口,或kill占用了端口的进程。

后台运行

nohup ./proxypool -c config.yaml 1>>run.log 2>>run.log &

添加自启

在 etc/rc.local 文件的倒数第二行添加后台运行命令,一定要是 exit 0 之前

nohup ./proxypool -c config.yaml 1>>run.log 2>>run.log &

exit 0

检查前端是否正常工作

curl http://127.0.0.1:12580
2 配置nginx

下载并安装nginx。

sudo apt-get install nginx

修改nginx的配置中的server部分,设置reverse proxy到proxypool服务的端口。默认配置文件路径可以使用nginx -h查看,通常入口配置文件中会包含了sites-enable文件夹下的配置。具体情况请以自己的机器为准。

# vim /etc/nginx/sites-enable/default
server {
    listen 80; # 需要设置为80,稍后certbot验证使用
    server_name proxypoolss.tk; # 你的域名

    location / {
        proxy_pass http://127.0.0.1:12580/; # proxypool服务的地址
    }
}

启动nginx

nginx

查看是否正常工作

curl http://127.0.0.1:80
3 使用Certbot自动颁发安装证书

如果遇到问题,以及详细步骤请根据Certbot官网操作。不同平台有差异。

安装snapd。Ubuntu20.4(以及其他某些版本)已经预装了snapd,可以跳过。详细见Certbot官网

安装certbot

sudo snap install --classic certbot # 安装
sudo ln -s /snap/bin/certbot /usr/bin/certbot # 程序加入PATH

为nginx安装证书。需要根据引导自行完成

sudo certbot --nginx

重启nginx

nginx -s reload

查看是否正常工作

curl https://127.0.0.1:443

完成,可以使用https访问了。

相关文章

  1. 硅谷互联网公司的开发流程

    开发流程包括这么几个阶段: OKR 的设立; 主项目及其子项目的确立; 每个子项目的生命周期; 主项目的生命周期; 收尾、维护、复盘。 第一点,OKR 的设立 所有项目的起始,都应该从 Ro

  2. RESTful-表述性状态转移风格

    REST英文全拼:Representational State Transfer 面向资源编程 资源指的就是一类数据 产品表->就是产品资源 最重要的是如何表示一个资源 地址即

  3. 稳定性思考

    产品功能线 0-1: 当系统从无到有的时候,首要考虑的是研发效率,功能快速迭代,满足快速增长的业务需求 1-10 系统已经搭建起来,此时考虑的是系统的稳定性。 可用性:1.隔离:区分出核心和非核心功能

  4. Supervisor守护队列发邮件

    安装 CentOS: yum -y install supervisor Debien/Ubuntu适用:apt-get install supervisor 配置 修改主配置文件:vim /et

  5. 安装libsodium,让服务器支持chacha20等加密方式

    用chacha20加密方式需要安装libsodium 注意:libsodium从1.0.15开始就废弃了aes-128-ctr yum install wget m2crypto git libsod

随机推荐

  1. 硅谷互联网公司的开发流程

    开发流程包括这么几个阶段: OKR 的设立; 主项目及其子项目的确立; 每个子项目的生命周期; 主项目的生命周期; 收尾、维护、复盘。 第一点,OKR 的设立 所有项目的起始,都应该从 Ro

  2. RESTful-表述性状态转移风格

    REST英文全拼:Representational State Transfer 面向资源编程 资源指的就是一类数据 产品表->就是产品资源 最重要的是如何表示一个资源 地址即

  3. 稳定性思考

    产品功能线 0-1: 当系统从无到有的时候,首要考虑的是研发效率,功能快速迭代,满足快速增长的业务需求 1-10 系统已经搭建起来,此时考虑的是系统的稳定性。 可用性:1.隔离:区分出核心和非核心功能

  4. Supervisor守护队列发邮件

    安装 CentOS: yum -y install supervisor Debien/Ubuntu适用:apt-get install supervisor 配置 修改主配置文件:vim /et

  5. 安装libsodium,让服务器支持chacha20等加密方式

    用chacha20加密方式需要安装libsodium 注意:libsodium从1.0.15开始就废弃了aes-128-ctr yum install wget m2crypto git libsod