引言
为了外网运行自测的小demo,且涉及前后端两个服务,而natapp
只购买了一个域名和隧道,简而言之,为了省钱,故研究了natapp
配合nginx
使用的方法。
natapp
- 申请账号
进入官网,注册登录。 - 购买隧道
没有大要求的话,买9元/月的就足以满足个人使用了。 - 购买二级域名
二级域名根据自己本机的配置情况进行设置,主要是本机的映射地址和端口,以及绑定购买的隧道。 - 下载
随后去客户端下载对应的版本。 配置
config.ini
在下载的natapp
同级目录下,下载config.ini
文件,或者直接复制我下面的内容到新建的config.ini
文件中。只需要配置authtoken
即可。#将本文件放置于natapp同级目录 程序将读取 [default] 段 #在命令行参数模式如 natapp -authtoken=xxx 等相同参数将会覆盖掉此配置 #命令行参数 -config= 可以指定任意config.ini文件 [default] authtoken=** #对应一条隧道的authtoken clienttoken= #对应客户端的clienttoken,将会忽略authtoken,若无请留空, log=none #log 日志文件,可指定本地文件, none=不做记录,stdout=直接屏幕输出 ,默认为none loglevel=ERROR #日志等级 DEBUG, INFO, WARNING, ERROR 默认为 DEBUG http_proxy= #代理设置 如 http://10.123.10.10:3128 非代理上网用户请务必留空
运行
命令行工具cd natapp
目录,然后输入./natapp
即可启动服务。此时打开对应的域名地址即可访问到本地启动的对应服务。nginx
- 下载
进入下载地址,找一个版本安装即可。mac 下运行brew install nginx
命令安装。 - 判断是否安装成功
终端输入nginx
启动服务,控制台输入localhost(未配置 nginx.conf 的端口默认为80)能进入nginx官网即表示安装成功。 配置
nginx.conf
找到 nginx 安装目录,打开 nginx.conf 文件。mac 下,终端运行open /usr/local/Cellar/nginx
可打开 nginx 安装目录,此处运行cat /usr/local/etc/nginx/nginx.conf
打开配置文件,配置如下:# nginx 80端口配置 (监听a二级域名) server { listen 80; server_name phoenixhg.natapp1.cc; # 根据项目名区分代理的地址与端口 location / { proxy_pass http://localhost:9000; index index.html index.htm; } # 根据项目名区分代理的地址与端口 location /socket.io/ { proxy_pass http://localhost:3001; #配置Nginx支持webSocket开始 proxy_set_header Host $http_host; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } }
listen
监听我们的端口,我的前端项目端口为 80,故使用 80 端口,server_name
指向我们的前面配置好的natapp
域名。location
配置了前后端项目代理,例如这里我的前端项目启动的服务地址为localhost:9000
,后端为localhost:3001
,通过proxy_pass
配置好即可,保存后重启nginx
服务(nginx -s reload),此时浏览器直接访问 phoenixhg.natapp1.cc 查看前端部署的项目地址。前端请求 api 地址可改为通过域名访问 phoenixhg.natapp1.cc/socket.io/ 。一个小点:配置 socket.io 后端服务的时候,location 一定要用 /socket.io/ 名称才可成功连接上 socket 服务,且 socket 后端代理必须配置上述的四行代码才支持。
大功告成
非局域网也能访问到自己的项目了!