由于微信小程序请求地址中不支持端口号,所以当服务器在本地运行测试的时候,需要使用代理来解决这个问题。
1. 反向代理
反向代理(Reverse Proxy)方式是指以代理服务器来 接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
2. 运行服务器,如localhost:3000
运行客户端,此时需要通过客户端向服务端请求数据,即需要解决请求地址不能带端口号的问题
3. 下载nginx
//mac终端执行下面命令(brew命令需单独安装)
brew search nginx //搜索软件
brew install nginx //安装软件
4. 运行nginx,直接使用nginx
命令即可运行nginx服务器,在localhost:8080可以查看运行成功的界面。
5.由于nginx默认监听的是8080端口,所以需要更改nginx配置使得端口为80
5.1 mac自带apache,占用了80端口
sudo vim /etc/apache2/httpd.conf
编辑httpd.conf里的Listen:80更改为其他端口
apache更改端口
5.2重启apache,确认80端口已释放
//重启
sudo /usr/sbin/apachectl restart
5.3更改nginx配置,使得其监听端口为80,转发地址为服务器地址即localhost:3000
//编辑nginx.conf文件
vi /usr/local/etc/nginx/nginx.conf
输入i
进行编辑,在http模块内更改端口和地址
- listen由8080改为80
- server_name 可使用localhost或自己>- 定义主机名(需在hosts文件中配置)
- 将多余的代码注释掉
- 在location里增加转发地址
按esc
退出编辑,输入:wq
保存并退出。
重新启动nginx
sudo nginx -s reload
5.5 由于在Unix内核中非Root用户无法直接使用1024以下的端口,所以此时的80端口仍然是无效的,命令行中会提示不允许。
在/usr/local/opt/nginx 下找到nginx对应的plist
文件,把这个文件复制到 /Library/LaunchDaemons 下
sudo cp /usr/local/opt/nginx/homebrew.mxcl.nginx.plist /Library/LaunchDaemons
运行此文件
sudo launchctl load -w /Library/LaunchDaemons/homebrew.mxcl.nginx.plist
重启计算机,即可直接通过localhost(你自己设置的server_name)来访问服务器的数据了。
网友评论