Ngrok 内网穿透实现Django+Vue部署

目录

[Ngrok 配置](#Ngrok 配置)

[注册/登录 Ngrok账号 官网ngrok | API Gateway, Kubernetes Networking + Secure Tunnels](#注册/登录 Ngrok账号 官网ngrok | API Gateway, Kubernetes Networking + Secure Tunnels)

直接cmd运行

[使用随机生成网址:ngrok http 端口号](#使用随机生成网址:ngrok http 端口号)

[使用固定域名生成网址:ngrok http --domain=你的固定域名 端口号](#使用固定域名生成网址:ngrok http --domain=你的固定域名 端口号)

[Django 配置](#Django 配置)

[1.You're accessing the development server over HTTPS, but it only supports HTTP](#1.You're accessing the development server over HTTPS, but it only supports HTTP)

问题1解决方法

[Vue 配置](#Vue 配置)

[1.This request has been blocked; the content must be served over HTTPS](#1.This request has been blocked; the content must be served over HTTPS)

问题1解决方法


Ngrok 配置

注册/登录 Ngrok账号 官网ngrok | API Gateway, Kubernetes Networking + Secure Tunnels

先登录后Ngrok后才好下载对应的软件,博主尝试不登陆直接下载软件,反正就是一直打不开下载网页,登录后就能直接下载了

将下载后的压缩包直接解压就可以运行ngrok.exe

如果不想每次运行都是随机的域名,可以固定域名,只不过这个域名是他随机生成的,不能自定义,起码不用每次都换网址了,免费的话只能生成一个固定域名

直接cmd运行

运行ngrok.exe后

使用随机生成网址:ngrok http 端口号

通过这个网址就能访问到自己本地的对应的http://localhost:9000网址,可以理解为ngrok往你的地址发送了个请求

使用固定域名生成网址:ngrok http --domain=你的固定域名 端口号

Django 配置

就是正常运行Django即可,但是可能会遇到几个问题

1.You're accessing the development server over HTTPS, but it only supports HTTP

问题1解决方法

先安装这3个包

pip install django-extensions

pip install django-werkzeug-debugger-runserver

pip install pyOpenSSL

然后在django上添加上对应的app

python 复制代码
INSTALLED_APPS = [
    #######......#######
    'werkzeug_debugger_runserver',
    'django_extensions',
    #######......#######
]

在setting.py 文件上添加上运行指定域名访问(全允许会不安全)

python 复制代码
# 允许所有域名访问
CORS_ALLOW_ALL_ORIGINS = True
CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_CREDENTIALS = True

运行服务

python 复制代码
python manage.py runserver_plus --cert server.crt ip地址:端口号

Vue 配置

1.This request has been blocked; the content must be served over HTTPS

2.Blocked request. This host ("octopus-******.ngrok-free.app") is not allowed.

To allow this host, add "octopus-******.ngrok-free.app" to `server.allowedHosts` in vite.config.js.

问题1解决方法

记得向Django请求把http改为https即可

另外的尝试

在 <head> 标签 里面的 <meta http-equiv > 改为下面的 没有的话就直接添加上

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">

问题2解决方法

需要在vite.config.ts 里面加上允许的端口号

javascript 复制代码
    server: {
      port: 90000,
      host: '0.0.0.0',
      open: true,
      allowedHosts:  ['octopus-****.ngrok-free.app'],
    },
相关推荐
实名上网宋凯宣8 小时前
Django
后端·python·django
如若1239 小时前
【论文复现】CoFailMed:从零复现医学图像分割的共享失败审计,含完整代码流程与科研绘图
人工智能·python
利威尔xu10 小时前
Go IM 源码实战(14):本地缓存快 3000 倍,失效却难 10 倍
后端·缓存·微服务·面试·golang
逃逸线LOF10 小时前
Ribbon负载均衡原理(Irule组件、源码分析)
后端·spring cloud·ribbon
砚底藏山河10 小时前
python量化自定义周期 K 线合成
java·开发语言·数据库·python·金融
慢云智慧空间10 小时前
从设备智能到空间理解,空间智能终端解决方案商如何重新定义行业标准
后端
视觉小萌新11 小时前
AI Class 3 · Chapter 1:变量、字符串、list/dict、if/for(python学习-小白版-有经验可跳过)
python·学习·list
利威尔xu11 小时前
Go IM 源码实战(13):30 个会话只有 2 个红点,未读数错在三条路径
redis·后端·微服务·面试·golang
薛定谔的猫-菜鸟程序员11 小时前
软件架构设计师开发资料大全(从入门到精通)
后端·python·系统架构·flask·架构设计师
IT_陈寒13 小时前
SpringBoot多环境配置把我坑惨了,这个踩坑经验你最好看看
前端·人工智能·后端