mac nginx 反向代理解决微信小程序端口问题

由于微信小程序请求地址中不支持端口号,所以当服务器在本地运行测试的时候,需要使用代理来解决这个问题。

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模块内更改端口和地址

nginx端口更改

  • 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)来访问服务器的数据了。

主要参考
搭建mac环境微信小程序的本地测试服务器
解决不支持80端口的问题和nginx配置中遇到的问题

你可能感兴趣的:(mac nginx 反向代理解决微信小程序端口问题)