小程序需要nginx吗

小程序需要nginx吗,第1张

需要。Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。根据要求,小程序需要nginx。小程序是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或者搜一下即可打开应用。

反向代理(Reverse Proxy)方式是指以代理服务器来 接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

运行客户端,此时需要通过客户端向服务端请求数据,即需要解决请求地址不能带端口号的问题

5.1 mac自带apache,占用了80端口

编辑httpd.conf里的Listen:80更改为其他端口

5.2重启apache,确认80端口已释放

5.3更改nginx配置,使得其监听端口为80,转发地址为服务器地址即localhost:3000

输入 i 进行编辑,在http模块内更改端口和地址

按 esc 退出编辑,输入 :wq 保存并退出。

重新启动nginx

5.5 由于在Unix内核中非Root用户无法直接使用1024以下的端口,所以此时的80端口仍然是无效的,命令行中会提示不允许。

在/usr/local/opt/nginx 下找到nginx对应的 plist 文件,把这个文件复制到 /Library/LaunchDaemons 下

运行此文件

重启计算机,即可直接通过localhost(你自己设置的server_name)来访问服务器的数据了。

主要参考

搭建mac环境微信小程序的本地测试服务器

解决不支持80端口的问题和nginx配置中遇到的问题

为什么要绕过网关上传文件

因为我们所有的请求都要经过网关,假如有一天网关微服务出了问题,那么我们所有的文件都上传不了,所以我们上传文件可以绕过网关去上传。

我们该如何实现绕过网关去上传?

首先你要知道,我们从浏览器发送过来的地址,都是从nginx进行代理,然后转发给网关进行匹配微服务,如果我们绕过网关的话,只需要直接从nginx配置不经过网关的地址就可以了。

像这个地址,之前我们只配置了一个地址,就是访问网关的地址,让浏览器只能发送到网关里面,现在我们在上面增多一个地址,这个是可以访问到上传文件路径的地址,为了更精准一点,我们加上后面的后缀/api/load,因为只要你点击上传文件的话,他就会访问这个地址,你只需要加上这个后缀,他能去自动访问这个地址,然后由上传文件的微服务去截取,端口我们可以直接改成上传文件的微服务的端口,我们这一定义上传文件的微服务的端口是8082,所以转发到8082也就是转发到上传文件的微服务,然后再由上传文件的微服务的controller去截取/upload,就可以实现后面的 *** 作。但是有一点需要注意的是,一定要注意把上传文件的配置写在网关配置的前面,也就是上图用红框圈起来的地方,这个顺序一定要注意,不然的话,路径会经过网关先,然后才会到上传文件路径,这样就会经过网关。

但是因为前端的原因,请求路径会自动加上api,然后这个是网关的api,虽然不是网关的端口,但是多了这个api,我们上传文件的微服务也没有办法访问到,所以我们要用到一个方法,nginx里面可以去重写路径。

怎么去重写路径呢?

我们可以看看这个方法,这个是我们重写的方法,这里用了正则表达式,以^开头,$结尾,第一个也就是api,表示的是需要修改的对象,然后第二个也就是(.)表示的是api后面的参数也就是/upload/image,然后用双引号括起来,这就是一个对象,我们需要获取的是1,这个1表达的是什么意思呢?就是你要求改的对象后面的一个参数比如(.)这个是代表什么上面已经说到了,也就是获取这些全部参数,这些也就是1,如果你加多几个(.*),那就可以选择二或者三。

写完之后我们还要做一个选择:

需要加这两个参数之中的一个,两者的区别就是进行一次路径匹配跟不匹配,如果进行一次路径匹配的话,我们上面的地址是没有api的,在nginx所有地址当中,都是带有api的,就连我们当前的这个地址,都是带api的,只是我们重写了而已,所以我们不能再重新进行一次路径匹配,只能不再重新匹配地址,选择第二个break。

最终结果把这后面的也去掉,所以我们最终访问8082这个上传文件的微服务,访问的时候顺便重写地址把api去掉,就可以正常访问微服务的controller。

最终结果


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11375278.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存