如何从公网访问本地Django项目
今天在处理项目时,就遇到如题说的这个问题,原以为这个问题很简单
首先根据自己的想法做了一遍,
其次,百度搜索,按百度上说的操作一遍,还是不行,继续搜索这个问题的答案,发现很多文章写的思路和方法都是一样的,估计很多是抄的,大概的思路就是这样:
1、开启django时,使用0.0.0.0:xxxx,作为ip和端口,例如:
python manage.py runserver 0.0.0.0:9000
2、在settings里修改ALLOWED_HOSTS= [],改为ALLOWED_HOSTS= ['*',],其他机器就可以通过这台机器的ip和端口号访问django了。
经过我多次验证,其实这种方法只能在局域网内进行访问,在公网是无法登录的,经过继续搜索,终于发现了一种可以使用的方法,利用holer这个开源项目,将创建好的ip和端口映射到这个域名上面,具体的步骤如下:
1.1 安装Java 1.7及以上版本执行命令java -version检查Java安装和配置是否正确。
1.2 安装并启动Django默认安装的Django端口是8000。
2. 实现步骤
2.1 下载并解压holer软件包
2.2 修改holer配置文件
在holer官网上申请专属的holer access key或者使用开源社区上公开的access key信息。例如申请得到的holer信息如下,这里以此holer信息为例:
---------------------------------------------
Holer Client : holerdemo@gmail.com
Access Key : 6688daebe02846t88s166733595eee5d
---------------------------------------------
Domain Name : holer65004.wdom.net
Internet Address : holer.org:65004
Local Address : 127.0.0.1:8000
---------------------------------------------
修改配置文件: holer-client/conf/holer.conf
配置项更新为: HOLER_ACCESS_KEY=6688daebe02846t88s166733595eee5d
2.3 启动holer服务
进入目录: holer-client/bin
Windows系统执行命令:双击 startup.bat或者打开CMD窗口进入目录下执行命令startup.bat
Linux系统执行命令: sh startup.sh
2.4 访问映射后的公网地址
浏览器里输入如下URL,就可在公网上也能访问到本地的Django了。
http://holer65004.wdom.net
# 或者
http://holer.org:65004
关于这个holer的更多内容,也可以参考官方博客http://blog.wdom.net/tag/Holer,使用起来还是比较简单的,虽然域名那些比较复杂,不太友好,但是还是可以满足基本的使用需求。
文章来源: https://zhuanlan.zhihu.com/p/67318515