});

通过访问二级域名端口转发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端设置

[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端设置

#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身份写入

# 进入服务管理路径
# cd /usr/lib/systemd/system

# 创建新文件
# 如果是frps就用frps.service
vim frpc.service

写入如下配置代码,关键在Execstart那一步,要填写绝对路径

[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

常用的服务管理命令

# 启动
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查看报错

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>

wordpress中url修改

随后问题解决

Nginx转发隐藏端口号

这个可以晚点做,只是简单设置把80转发给 [frps监听] 端口

设置nginx配置文件,才可同时访问主站和二级域名,否则会自动跳转主站