Teradici系统的可定制代理。

interstate-love-song的Python项目详细描述



____  _/________  /_____________________  /______ __  /_____ 
___  / __  __ \  __/  _ \_  ___/_  ___/  __/  __ `/  __/  _ \
__/ /  _  / / / /_ /  __/  /   _(__  )/ /_ / /_/ // /_ /  __/
/___/  /_/ /_/\__/ \___//_/    /____/ \__/ \__,_/ \__/ \___/ 

 ______                         ________                     
 ___  / _________   ______      __  ___/___________________ _
 __  /  _  __ \_ | / /  _ \     _____ \_  __ \_  __ \_  __ `/
 _  /___/ /_/ /_ |/ //  __/     ____/ // /_/ /  / / /  /_/ / 
 /_____/\____/_____/ \___/      /____/ \____//_ /_/_\__,  / 
                                                    /____/

Teradici系统的可定制代理。在

跑步

您可以通过以下方式直接运行WSGI服务器

^{pr2}$

理由是:

  • -s,--server:可以是gunicorncherrypy或{}。gunicorn是推荐的,也是默认值。在

  • --主机:(默认:localhost)

  • -p,--端口:(默认值:60443)。在

  • --回退会话:在某些情况下,如果标头的大小写不正确,PCOIP客户端可能不会使用cookie。 HTTP规范说头名称不区分大小写,但PCOIP客户端认为其中一些应该区分大小写。在这种情况下 我们可以使用CLIENT-LOG-ID头来跟踪会话。请注意,如果可以的话,您应该运行cookies 因为这样更稳定,更不浪费。在

  • --config:配置文件。在

  • --cert:SSL证书文件,SSL不是可选的。(默认值:自签名.crt)在

  • --密钥:SSL密钥文件(默认值:selfsign.key)在

  • --gunicorn worker类:请参见gunicorn config(默认值:gevent)

  • --gunicorn workers:请参见gunicorn config(默认值:2)

选择服务器

teradicipcoip客户端非常挑剔和特别。在

  • 服务器必须使用分块编码(他们声称它支持 常规HTTP传输,但不是。)
  • SSL是必须的。在
  • cookie set头必须显式为“set cookie”,否 其他情况允许。在

如果你不喜欢,考虑一下古尼康。在

CherryPyRunner是在windows上开发的一个很好的选择。^运行CherryPy时可能需要{}。在

Werkzeug似乎一点都不好用。这并不是因为Werkzeug不好,而是因为上面的原因,某件事 关于通信与Teradici PCOIP客户机没有关联。在

设置

生成默认配置:

python -m interstate_love_song.settings > ../settings.json

截面

JSON文件包含一个JSON设置。每个部分都是它自己的JSON对象。在

记录

level:str;INFODEBUGINFO

烧杯

查看Beaker docs。在

type:str;会话存储类型(file

data_dir:str;会话存储位置(/tmp

映射器

mapper:dict;{"plugin": "SimpleMapper", "settings": {}}

mapper.plugin:str;要使用的映射器的名称(SimpleMapper

mapper.settings:dict;映射器设置

有关示例,请参见SimpleMapper

制图员

映射器将资源分配给用户;用简单的英语,他们决定将哪些Teradici机器(如果有的话)呈现给 正在连接客户端。在

SimpleMapper

简单的映射器确实很简单。它只验证一个普通用户。它为返回一组给定的资源 这个用户,没有特殊的逻辑。在

简单的映射器主要用于测试和作为参考实现。在

设置

username:str;身份验证用户(test

password_hash:str;身份验证密码,请参阅简单映射器部分(change_me

resources:Sequence[Resource];要呈现的资源([]

domains:Sequence[str];可用域列表

SimpleMapper的示例配置 例如:

{..."mapper":{"plugin":"SimpleMapper","settings":{"username":"kolmogorov","password_hash":"goodluckgettingthishash","resources":[{"name":"Elisabeth Taylor","hostname":"vmwr-test-01.example.com"},{"name":"James Dean","hostname":"vmwr-test-01.example.com"},{"name":"Marlon Brando","hostname":"localhost"}],"domains":["example.com"]}}}

生成密码哈希

用户名和密码存储在设置中。为了在明文密码上提供一点安全性,我们需要 要“预哈希”的密码。这样我们就不会在任何地方存储明文密码。在

要生成哈希密码,只需调用:

python -m interstate_love_song.mapping.simple "a very long password"

插件映射器

映射器可以作为插件写在单独的python包中。
要找到插件,您需要在setup.py中定义一个入口点:

setup(
  ...
  entry_points={'interstate_love_song.plugins': 'SimpleWebserviceMapper = SimpleWebserviceMapper'},
  ...
)

例如,请查看我们的SimpleWebServiceMapper repo。在

要求

  • Python 3.7+
  • 猎鹰
  • <李>pytest(用于测试)
  • 消毒剂
  • xmldiff(用于测试)
  • 烧杯
  • 猎鹰中间件烧杯
  • 请求
  • httpretty(用于测试)

如果你想运行Gunicorn,你需要Gunicorn和worker类可能需要的依赖项。例如, “gevent”,自然需要“gevent”。在

如果你想使用CherryPy的runner或Werkzeug,你也需要这些软件包。在

格式化和线切割

我们使用black来格式化代码,我们允许127列的行长度。
如果代码格式不正确,CI将运行python -m black --check source --target-version py37 --line-length 127失败。
要进行本地测试,可以使用pip install black==19.10b0
安装black 强烈建议将IDE配置为使用这些设置在保存时运行格式化。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
jsf如何找到ajax更新/呈现组件的客户端ID?找不到从“bar”引用的表达式为“foo”的组件   java将字符串转换为日期,引发ParseException   XML到javajaxb   java即使在呼叫onStop后仍保持蓝牙连接   使用java获取复杂的JSON结构   java我的序列化程序相互依赖,如何确保两者都被使用   java如何保持堆栈的最大值?   java为什么listFiles()也将目录列为文件?   java如何以即时消息类型的格式显示文本   java Google云存储、blobstoreService、gzip压缩   java我对复制2D数组感到困惑   java如何安装antlr4?   在另一个目录中保存JAVA非常简单的问题!   Java JDBC连接和Oracle   全屏应用程序中的java屏幕截图(打印屏幕)   java如何将HTML代码呈现或转换为所见即所得编辑器生成的纯文本   java为绘制添加计时器   java GUI只显示了一个数字   Java线程中的数据成员会发生什么情况?