相信作微信公众号开发的朋友都知道,要想在微信中预览效果,必须使用域名访问.不少朋友使用内网穿透工具.不只很差用还不稳定.因此,发挥脸厚吃天下的态度,向公司it申请了一个子域名指向了阿里云一台ecs的80端口.但是后来,端口不够用了.本着就近原则,又找到IT小哥,能再好心的再映射一个8080端口.那知傲娇的小哥一脸鄙夷眼睛看着我,对不起子域名只能80端口.不凑巧的时,个人ecs也只开放了80端口.此时只有一个域名,我要映射多个服务器.是时候放出大器nginx了.诉求很简单html
查看官方文档,咱们选择 tengine 翻译的官方文档.在页面[模块参考目录]找到[ngx_http_proxy_module]连接,点击进入之后搜索proxy_pass.必定会找到如下两个说明前端
location /name/ {
proxy_pass http://127.0.0.1/remote/;
}
复制代码
location /some/path/ {
proxy_pass http://127.0.0.1;
}
复制代码
这段说明晦涩难懂,还出现一个不少人搞不清楚的名称 URI ,固然我也是那个不少人,为此我搜索了URI URL的区别,期间还冒出了一个URN,头都大了,看了十分钟没找到满意的答案.姑且我么认为就是地址中的某一部分吧.nginx
简单理解下第一点,若是 proxy_pass 配置值后边包含/,最终获得的路径,会去掉location配置的path,再结合请求地址中location配置以后可能存在的内容.二者相结合成一个新的地址.按照官方提供的配置.咱们假设json
wx.464884492.com
wx.464884492/name/herbert/
根据提供的第一种配置,nginx获得的真实地址示意图以下:后端
再简单理解下第二点,若是 proxy_pass 配置值后边不包含/,最终获得的路径,proxy_pass配置值加上location配置path以及以后的path.二者结合成一个新地址,按官方提供配置,咱们假设浏览器
wx.464884492.com
wx.464884492/some/path/herbert/
根据提供的第二种配置,nginx获得的真实地址示意图以下:服务器
因此简单总结就是微信
从nginx官网下载解压修改nginx.conf文件中http模块以下:markdown
...
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
client_max_body_size 20M;
server {
listen 80 default_server;
server_name 127.0.0.1;
location / {
proxy_pass http://127.0.0.1;
}
location /name/ {
proxy_pass http://127.0.0.1/remote/;
}
location /some/path/ {
proxy_pass http://127.0.0.1;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
...
复制代码
双击nginx.exe运行分别在浏览器中访问一下地址app
因为我配置并无具体root,访问页面最终的地址是找不到.因此页面会出现 An error occurred 的错误页.不过咱们恰好能够在错误日志印证咱们上面的结果.咱们上边的示意图采用了域名的方式说明,若是想获得示意图上的结果,须要在host文件中添加配置wx.464884492.com 127.0.0.1
同时在nginx配置文件server_name改为wx.464884492.com
打开logs目录下error.log日志文件,咱们就会发现咱们刚访问的信息以及最终转换的真实地址信息都乖乖的显示在那里,主要信息以下:
浏览器访问 http://127.0.0.1/name/herbert/
nginx 给个人访问日志
2019/12/06 14:21:32 [alert] 15384#12716: *9206 1024 worker_connections are not enough while connecting to upstream,
client: 127.0.0.1, server: 127.0.0.1,
request: "GET /remote/herbert/ HTTP/1.0",
upstream: "http://127.0.0.1:80/remote/herbert/", host: "127.0.0.1"
浏览器访问 http://127.0.0.1/some/path/herbert/
nginx 给个人访问日志
2019/12/06 14:21:35 [alert] 15384#12716: *11251 1024 worker_connections are not enough while connecting to upstream,
client: 127.0.0.1, server: 127.0.0.1,
request: "GET /some/path/herbert/ HTTP/1.0",
upstream: "http://127.0.0.1:80/some/path/herbert/", host: "127.0.0.1"
复制代码
有了以上知识个人诉求就完美解决了.
对应配置
location /dev1/ {
proxy_pass http://192.168.10.2:8080;
}
复制代码
对应配置
location /dev2/ {
proxy_pass http://192.168.10.2:8081/;
}
复制代码
凡事多总结中没有坏处,以上那么多其实就一句话,有杠去掉,无杠保留,虽然小,但解决的步骤一个很多.
欢迎感兴趣的朋友关注个人微信订阅号"小院不小",或者点击下方的二维码关注。我将多年开发中遇到的难点,以及一些有意思的功能,体会都会一一发布到个人订阅号中。须要本文nginx配置文件能够在公众号中回复nginx1
闲来无事,采用cocos creator开发了一个小游戏,感兴趣的朋友一个能够来玩玩
有喜欢聊技术朋友也欢迎入群,若二维码失效可加我微信回复前端