起因
想给tinyproxy添加author认证,添加完配置之后,无法启动 ...。网上查阅资料后,发现1.18版本是没有这个功能的【之前是通过yum install tinyproxy 直接安装的】。
先确定自己的tinyproxy版本
tinyproxy -v
果然,还是需要搞起 ...
过程
# 获取安装包
wget https://github.com/tinyproxy/tinyproxy/releases/download/1.11.0/tinyproxy-1.11.0.tar.gz
# 这个过程实在是有点慢,直接从releases中下载后上传到文件中
# 解压安装包
tar -zxvf tinyproxy-1.11.0.tar.gz
# 进入安装文件夹
cd tinyproxy-1.11.0
# 编译并安装
./autogen.sh
./configure
make
make install
安装完成后,再次确定版本,并查看安装路径
which tinyproxy
修改配置文件,下面是安装后配置文件位置
vi /usr/local/etc/tinyproxy/tinyproxy.conf
# 将下面直接注释掉,允许所有ip访问
#Allow 127.0.0.1
#Allow ::1
# 设置用户名密码
BasicAuth username password
# 顺便将下面两行取消注释,后面有用到
PidFile "/usr/local/var/run/tinyproxy/tinyproxy.pid"
LogFile "/usr/local/var/log/tinyproxy/tinyproxy.log"
保存配置文件后,使用下面的命令启动。
tinyproxy -c /usr/local/etc/tinyproxy/tinyproxy.conf
启动后就可以测试下
# 不加验证参数不会正常返回
curl -x http://127.0.0.1:8888 www.baidu.com
# 正常返回
curl -x http://username:password@127.0.0.1:8888 www.baidu.com
以上就是简要安装与配置,但是为了方便管理服务,得添加到系统服务。
# 新建tinyproxy.service文件
vi /usr/lib/systemd/system/tinyproxy.service
# 贴入以下代码
[Unit]
Description=Startup script for the tinyproxy server
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/var/run/tinyproxy/tinyproxy.pid
ExecStart=/usr/local/bin/tinyproxy -c /usr/local/etc/tinyproxy/tinyproxy.conf
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
[Install]
WantedBy=multi-user.target
上面的配置文件直接仿照yum安装的1.8.3版的,会出现点问题,启动不了,因为tinyproxy配置文件里的log和pid文件不存在,得先通过以下命令创建。
mkdir -p /usr/local/var/run/tinyproxy
mkdir -p /usr/local/var/log/tinyproxy
touch /usr/local/var/log/tinyproxy/tinyproxy.log
touch /usr/local/var/run/tinyproxy/tinyproxy.pid
然后就可以正常使用service命令了。
service tinyproxy start # 启动
service tinyproxy stop # 停止
service tinyproxy restart # 重启
service tinyproxy status # 状态
# 将tinyproxy服务设置开机自启
sudo systemctl enable tinyproxy
问题
- Failed to parse PID from file /usr/local/var/run/tinyproxy/tinyproxy.pid: Invalid argument
因为之前版本没有停止并卸载PID文件依旧存在,最简单的方法就是重启 - ./autogen.sh Permession问题
chmod +x 解决授权就可以