美文网首页
mac nginx 反向代理解决微信小程序端口问题

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

作者: promise96319 | 来源:发表于2018-10-10 14:35 被阅读0次

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

    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 反向代理解决微信小程序端口问题

          本文链接:https://www.haomeiwen.com/subject/tzupaftx.html