美文网首页
docker运行pypiserver,并用nginx代理

docker运行pypiserver,并用nginx代理

作者: JOHY119 | 来源:发表于2023-04-22 10:06 被阅读0次

安装docker

部署pypiserver

docker run -d --name pypiserver --restart=always -p 8040:8080 -v ~/pypiserver/packages:/data/packages -v ~/pypiserver/.htpasswd:/data/.htpasswd  pypiserver/pypiserver:latest -P .htpasswd packages --hash-algo sha256

指令说明

auth

pypiserver默认使用htpaswd创建的密码文件进行验证,创建指令如下

htpasswd -sc .htpasswd <需要的用户名>

.htpasswd为密码文件,新创建要加-c参数

创建后在docker中用-P指定密码文件,后跟需要保护的目录,注意默认工作目录是/data

挂载

将密码文件挂载至docker内的/data/.htpasswd,将包存储目录挂载至/data/packages

hash

pypiserver默认hash算法为md5,poetry工具使用sha256,所以指定--hash-algo为sha256

nginx代理

  • 如果直接用根目录/代理,则只需要
location / {
  proxy_pass http://127.0.0.1:8040/;
}
  • 从pypiserver 1.3开始,可以在nginx配置中使用X-Forwarded-Host头来实现改变基本URL,实现代理在子路径下:
server {
  location /pypi/ {
      proxy_set_header  X-Forwarded-Host $host:$server_port/pypi;
      proxy_set_header  X-Forwarded-Proto $scheme;
      proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header  X-Real-IP $remote_addr;
      proxy_pass        http://127.0.0.1:8040/;
  }
}

相关文章

网友评论

      本文标题:docker运行pypiserver,并用nginx代理

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