为什么项目cdn反盗链,然后本地开发也因为一些特殊情况被限制,在cdn中设置了一些本地ip白名单,以及端口其实支持的不好,导致cdn资源有时候能访问,有时候访问不了。无奈,跟运维和后端商量,暂时把开发地址改成80端口正常开发。更改Egg.js项目的端口非常简单。但是有一些需要注意的地方,本文是针对MacOS的,当然Linux系统应该也适用。如何去做这里有几个解决方案供大家参考:修改package.json运行哪个命令,在该命令后加上--port=80,例如:"start":"egg-scriptsstart--daemon--title=egg-server-51la-web-egg--workers=2--port=80",...dev是一样的。配置config.default.js部分如下:'usestrict';module.exports=app=>{constexports={};exports.cluster={listen:{port:80,hostname:'127.0.0.1',},};退货出口;};以上方法在执行egg-scripts(如npmstart)时均有效。如果需要执行npmrundev,开启,参考上面修改package.json的解决方法。我一开始是通过设置config.local.js实现的,后来发现不成功,报错!报错信息部分如下:[egg-scripts]2019-03-2014:30:48,033ERROR7988[app_worker]servergoterror:bindEADDRINUSEnull:7001,code:EADDRINUSENginx大法比较麻烦,不过看了下官方文档,应该也能很好的支持。如果您有兴趣,请阅读本节:部署警告如果您不阅读本节,不幸的是,您肯定无法运行它。你可能会遇到以下异常:ERROR3810nodejs.AppWorkerDiedError:[master]app_worker#1:3813died(code:0,signal:null,suicide:false,state:dead),currentworkers:[]原因是服务器默认情况下,Node.js端不能使用低于1024的端口。我应该怎么办?使用sudo哈哈哈。就是这样:sudonpmstart或sudonpmrundev。也可能是:ERROR3709[app_worker]servergoterror:bindEADDRINUSEnull:80,code:EADDRINUSE端口被占用!ctrl+c后不能立即终止node.js的服务器服务。比如默认的7001没能正常关闭,通过`config.local.js文件修改的80端口也没有生效。每次启动服务时,都会启动一个新的端口7002。这时:需要找出占用7001`端口的pid,终止。运行效果大致如下:P750TM:51la-web-eggwhidy$lsof-i:7001COMMANDPIDUSERFDTYPEDEVICESIZE/OFFNODENAMEnode2982whidy25uIPv60x2f7a1da313a05e4d0t0TCP*:afs3-callback(LISTEN)P750TM:51laeggwhidy$killkill:用法:kill[-ssigspec|-n符号|-sigspec]pid|jobspec...或kill-l[sigspec]P750TM:51la-web-eggwhidy$kill2982P750TM:51la-web-eggwhidy$lsof-i:7001上面使用了两个命令:lsof-i:[portnumber],kill[进程的PID],最后重新查询7001没有任何返回,说明Ok,再次执行sudonpmrundev,然后就可以使用80端口了。参考egg.js启动命令Node.jsEACCES错误在监听大部分端口时本文只是一个总结形式,整个过程无法完全重新执行。如有操作跳转或错误,请指教~
