由于微信小程序請求地址中不支持端口號,所以當(dāng)服務(wù)器在本地運行測試的時候,需要使用代理來解決這個問題。
1. 反向代理
反向代理(Reverse Proxy)方式是指以代理服務(wù)器來 接受Internet上的連接請求,然后將請求轉(zhuǎn)發(fā)給內(nèi)部網(wǎng)絡(luò)上的服務(wù)器,并將從服務(wù)器上得到的結(jié)果返回給Internet上請求連接的客戶端,此時代理服務(wù)器對外就表現(xiàn)為一個服務(wù)器。
2. 運行服務(wù)器,如localhost:3000
運行客戶端,此時需要通過客戶端向服務(wù)端請求數(shù)據(jù),即需要解決請求地址不能帶端口號的問題
3. 下載nginx
//mac終端執(zhí)行下面命令(brew命令需單獨安裝)
brew search nginx //搜索軟件
brew install nginx //安裝軟件
4. 運行nginx,直接使用nginx命令即可運行nginx服務(wù)器,在localhost:8080可以查看運行成功的界面。
5.由于nginx默認監(jiān)聽的是8080端口,所以需要更改nginx配置使得端口為80
5.1 mac自帶apache,占用了80端口
sudo vim /etc/apache2/httpd.conf
編輯httpd.conf里的Listen:80更改為其他端口

5.2重啟apache,確認80端口已釋放
//重啟
sudo /usr/sbin/apachectl restart
5.3更改nginx配置,使得其監(jiān)聽端口為80,轉(zhuǎn)發(fā)地址為服務(wù)器地址即localhost:3000
//編輯nginx.conf文件
vi /usr/local/etc/nginx/nginx.conf
輸入i進行編輯,在http模塊內(nèi)更改端口和地址

- listen由8080改為80
- server_name 可使用localhost或自己>- 定義主機名(需在hosts文件中配置)
- 將多余的代碼注釋掉
- 在location里增加轉(zhuǎn)發(fā)地址
按esc退出編輯,輸入:wq保存并退出。
重新啟動nginx
sudo nginx -s reload
5.5 由于在Unix內(nèi)核中非Root用戶無法直接使用1024以下的端口,所以此時的80端口仍然是無效的,命令行中會提示不允許。
在/usr/local/opt/nginx 下找到nginx對應(yīng)的plist文件,把這個文件復(fù)制到 /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(你自己設(shè)置的server_name)來訪問服務(wù)器的數(shù)據(jù)了。
主要參考
搭建mac環(huán)境微信小程序的本地測試服務(wù)器
解決不支持80端口的問題和nginx配置中遇到的問題