安装butterfly+nginx+https
时间:2019-09-14
本文章向大家介绍安装butterfly+nginx+https,主要包括安装butterfly+nginx+https使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
安装butterfly+nginx https
1. 安装butterfly
yum install python36 python36-pip python36-devel -y
pip install butterfly
pip install butterfly[themes] # If you want to use themes
pip install butterfly[systemd] # If you want to use systemd
butterfly
1.1 注册systemd服务
cd /etc/systemd/system
curl -O https://raw.githubusercontent.com/paradoxxxzero/butterfly/master/butterfly.service
curl -O https://raw.githubusercontent.com/paradoxxxzero/butterfly/master/butterfly.socket
systemctl enable butterfly.socket
systemctl start butterfly.socket
1.3 配置butterfly为非安全模式,我们使用nginx来提供https服务
使用sshd授权登录方式.
vim /etc/systemd/system/butterfly.service
[Unit]
Description=Butterfly Terminal Server
[Service]
ExecStart=/usr/local/bin/butterfly.server.py --unsecure --login --pam_profile=sshd
1.4 重新启动服务即可
systemctl restart butterfly.socket
- nginx的配置文件
- 设置
server {
listen 443 ssl;
server_name servername;
ssl_certificate /home/makeit/.keys/fullchain.pem;
ssl_certificate_key /home/makeit/.keys/keys.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
auth_basic "input you passwd";
auth_basic_user_file passwd.db;
location / {
proxy_pass http://127.0.0.1:575575;
proxy_read_timeout 300s;
proxy_connect_timeout 300s;
#后端证书文件,如果后端开启https
#proxy_ssl_certificate /etc/butterfly/ssl/butterfly_ca.crt;
#proxy_ssl_certificate_key /etc/butterfly/ssl/butterfly_ca.key;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-F $remote_addr;
proxy_http_version 1.1; #代理websocket
proxy_set_header Upgrade "websocket";
proxy_set_header Connection "Upgrade";
proxy_set_header Sec-Websocket-Version 13;#重要
proxy_set_header Connection ""; #防止客户端close,后端也close了
}
后端设置自签证书,连上后就close了. 没弄好,
改成后端使用非安全模式才可以的.
参考:
https://github.com/paradoxxxzero/butterfly
https://www.xncoding.com/2018/03/12/fullstack/nginx-websocket.html
https://ma.ttias.be/enable-keepalive-connections-in-nginx-upstream-proxy-configurations/
https://www.serverlab.ca/tutorials/linux/web-servers-linux/how-to-proxy-wss-websockets-with-nginx/
https://www.hi-linux.com/posts/42176.html
原文地址:https://www.cnblogs.com/lovesKey/p/11519957.html
- win10下端口被占用解决办法
- 微信小程序开发教程第九章:微信小程序拍照收纳开发以及删除名片等
- centos 安装sbt
- 微信小程序开发教程第七章:微信小程序编辑名片页面开发
- idea中使用scala运行spark出现Exception in thread "main" java.lang.NoClassDefFoundError: scala/collection/Gen
- 使用JPA中@Query 注解实现update 操作
- 微信小程序开发教程!博卡君第二弹【微信小程序项目结构以及配置】
- WCF浅尝
- 如何将页面设置为微信端才能打开
- 你不可错过的二维码生成与解析-java后台与前端js都有
- Windows服务创建及安装
- dede自定义表单增加添加时间怎么弄
- nodejs配置简单HTTP服务器
- marquee一行代码实现滚动跑马灯效果无需js
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 院长智能部署Frp内网穿透---支持多系统
- dotnet OpenXML 元素 cNvPr NonVisual Drawing Properties 重复 id 标识处理
- Magicodes.IE之花式导出
- vue列表点击切换颜色
- JVM加载过程科普
- 我没学过计算机,是怎么接了四个私活还挣了两个 iPad 的?
- Helm安装Prometheus Operator
- 【每日一题】【vue2源码学习】vue如何检测数组的变化
- JavaScript 实现输入框内容一键复制(附上 Vue 3 实现方式)
- python 迭代器/iterator与生成器/generator的区别
- CSS 实现文本超出容器范围用省略号显示(单行+多行)
- ESP8266和ROS收发消息读取模拟量控制LED亮度
- 纯 CSS 实现下拉菜单尖角图标(实心+空心)
- 3分钟短文:书接上回,Laravel数据库迁移的那些个小技巧
- 解密 Docker 挂载文件,宿主机修改后容器里文件没有修改