美文网首页
本地搭建httpbin

本地搭建httpbin

作者: 田丰w | 来源:发表于2020-07-03 18:29 被阅读0次

httpbin用于回显http请求参数,对于api调试比较有帮助
如果偶尔使用,借助官网即可; 对于网络不好的,可以自己在局域网内搭建一个.源码在https://github.com/postmanlabs/httpbin

下面记录一下本地使用安装部署的步骤

  1. 安装miniconda(Miniconda3-py37_4.8.2-Linux-x86_64.sh)
    miniconda安装包镜像
chmod +x Miniconda3-py37_4.8.2-Linux-x86_64.sh
sudo ./Miniconda3-py37_4.8.2-Linux-x86_64.sh
# 指定安装位置, 如 /opt/miniconda3
  1. 配置 pip 源和conda源(这里是清华的源)
    vim ~/.pip/pip.conf
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple

vim ~/.condarc

channels:
  - defaults
show_channel_urls: true
channel_alias: https://mirrors.tuna.tsinghua.edu.cn/anaconda
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

清华anaconda镜像源

  1. 安装 httpbin
    检查pip是不是刚刚安装的
sudo which pip

对于centos7, 安装完之后, 可能 sudo 找不到 pip, 或者pip不是刚刚安装的, 需要

sudo ln -s /opt/miniconda3/bin/pip /usr/bin/
sudo ln -s /opt/miniconda3/bin/conda /usr/bin/
sudo pip install gunicorn
sudo conda install gevent

或者使用绝对路径指定 pip

sudo /opt/miniconda3/bin/pip install gunicorn 
sudo /opt/miniconda3/bin/conda install gevent

pip默认安装的是 httpbin 是0.7.0
使用源码安装最新版本(这里是0.9.2)

git clone https://github.com/postmanlabs/httpbin.git
cd httpbin
sudo /opt/miniconda3/bin/python setup.py install

如果缺少其他的依赖,用pip或者conda安装即可

  1. 测试安装(这里自己指定了绑定的IP和端口号,默认 127.0.0.1:8000,在本机外不能访问)
gunicorn -b 0.0.0.0:7501  httpbin:app

访问 http://<host-ip>:7501

httpbin局域网部署启动效果
  1. 如有防火墙,打开对应的端口
    这里使用 firewall-cmd 管理防火墙
    创建文件,内容如下
    sudo vim /usr/lib/firewalld/services/httpbin.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>httpbin</short>
  <description>httpin is a http requestion echo service, for http API test</description>
  <port protocol="tcp" port="7501"/>
</service>

sudo firewall-cmd --permanent --add-service=httpbin # 配置开机启动
sudo systemctl restart firewalld.service # 重启防火墙(这里使用是systemd管理服务的)

  1. 使用 systemd 配置开机启动
    在/lib/systemd/system/ 目录下,创建服务脚本:httpbin-server.service
    sudo vim /lib/systemd/system/httpbin-server.service
[Unit]
Description=httpbin server
After=syslog.target network.target remote-fs.target nss-lookup.target
 
[Service]
Type=forking
ExecStart=/bin/bash -c 'nohup /opt/miniconda3/bin/gunicorn -b 0.0.0.0:7501  httpbin:app &'
ExecStop=/bin/bash -c 'ps -ef | grep gunicorn | grep :7501 | awk '{print $2}' | xargs kill -s 9'
Restart=always
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target

配置开机启动
sudo systemctl enable httpbin-server.service
sudo systemctl daemon-reload

相关文章

网友评论

      本文标题:本地搭建httpbin

      本文链接:https://www.haomeiwen.com/subject/ifasqktx.html