通过访问二级域名端口转发http请求给frp
配合jupyter lab使用,随时随地coding
背景
修改目录为 /JptLb后,frpc端可以接收到/JptLb的指令,说明命令可达此处,只需要解决纯访问端口,不带/JptLb
参考了对nginx代理原理的介绍,可能只能重写header , port 不能写目录https://blog.csdn.net/u010391029/article/details/50395680
于是想到可以创建子域名
由于服务器为香港的阿里云,域名则是国内的腾讯云购买,无法也无需按常规教程去域名购买商和服务器商操作。直接在宝塔面板操作
失败,还是需要解析域名,难度较大,更换策略
在nginx配置的转发后加上/,访问出现frp提示页面,aliyun主机提示domain seaofdirac.top/ not found,进一步修改frps设置
思考
假设是因为强制跳转https导致的无法连接,采用二级域名专门转发http不配置ssl证书应当可以了吧?
先在腾讯云域名页面添加解析(位置见下图,因为是境外服务器,在服务器平台找了很久都没找到)
frp设置subdomain二级域名
简洁版,仅包含关键设置:
frps端设置
1 2 3 4 5 6 7 8 9 10 11 12 |
[common] #frps 和 frpc的沟通端口 bind_port = 123 #http和https转发端口 vhost_http_port = 1234 vhost_https_port = 12345 #关键所在!设置二级域名的host,如下 #后面在frpc端再设置二级域名的具体地址 subdomain_host = your_host_domain.com |
frpc端设置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
#frpc和frps传输的公约,和frps设置的一致即可 [common] server_addr = server_public_ip_addr server_port = 123 vhost_http_port = 1234 vhost_https_port = 12345 #留给ssh访问的 [ssh] type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = port_on_your_server #关键!想要转发的http项目设置 [web01] type = http local_ip = 127.0.0.1 local_port = port_of_your_project #这里其实省略了frps中设置的subdomain_host #例如如下设置,要访问的url是 #your_subdomain.your_host_domain.com subdomain= your_subdomain |
配置服务启动frps/frpc
以centos下frpc创建为例,ubuntu路径有所不同
要以root身份写入
1 2 3 4 5 6 |
# 进入服务管理路径 # cd /usr/lib/systemd/system # 创建新文件 # 如果是frps就用frps.service vim frpc.service |
写入如下配置代码,关键在Execstart那一步,要填写绝对路径
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
[Unit] Description=Frp Client Service After=network.target syslog.target Wants=network.target [Service] # 也有人写Type=idle # 那样就是等所有任务启动后再启动 Type=simple # 这里写绝对路径 ExecStart=/home/arc/Documents/frp/frp_0.34.3_linux_amd64/frpc -c /home/arc/Documents/frp/frp_0.34.3_linux_amd64/frpc.ini [Install] WantedBy=multi-user.target |
常用的服务管理命令
1 2 3 4 5 6 7 8 9 10 11 |
# 启动 systemctl start frpc.service # 开机自启 systemctl enable frpc.service # 查看后台进程 ps -aux|grep process_name # 结束进程 kill -9 PID_num |
停止和重启就是 stop和restart啦,这里就省略了
结语
frp和jupyter配置到此结束了,下面是一些过程中可能遇到的问题
和小的设想。
wordpress Mix contents error
保存新文档时提示 The response is not a valid JSON response.
F12控制台consoler查看报错
1 |
api-fetch.min.js?ver=3.6.4:1 Mixed Content: The page at 'https://seaofdirac.top/wp-admin/post-new.php' was loaded over HTTPS, but requested an insecure resource 'http://seaofdirac.top/wp-json/wp/v2/users/me?_locale=user'. This request has been blocked; the content must be served over HTTPS. |
联想到可能是wordpress的转发前缀有问题,直接查看wordpress的URL设置,改http://<url>为https://<url>
随后问题解决
Nginx转发隐藏端口号
这个可以晚点做,只是简单设置把80转发给 [frps监听] 端口
设置nginx配置文件,才可同时访问主站和二级域名,否则会自动跳转主站