一、问题背景
由于项目本身的原因,开发必须使用80端口实现,而在MAC系统中非Root用户无法直接使用1024以下的端口
二、首先释放Apache服务80端口
由于Mac OS是自带Apache服务的,它本身占用了80端口,首先你需要将Apache的监听端口改为其他或者直接将其卸载,作者是改掉它的监听端口为8011。
sudo vim /etc/apache2/httpd.conf
改动之后,将其重启 sudo /usr/sbin/apachectl restart
到这里,你已经将80端口释放掉了。
sudo lsof -i :80
查看端口占用状况
三、使用Nginx分发80端口至8080端口
1、使用Homebrew安装库
brew search nginx
brew install nginx
2、这样安装好之后,修改配置
sudo vim /usr/local/etc/nginx/nginx.conf
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
proxy_pass http://127.0.0.1:8080;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server下的结点: listen:监听80端口 server_name:转发到哪个地址 proxy_pass:代理到哪个地址
3、Nginx开机启动
其次你需要了解的就是plist文件。plist就是property list format的意思,是苹果用来保存应用数据的格式,其实就是个xml。可以在/usr/local/opt/nginx 下找到nginx对应的plist文件,比如在作者电脑上是 homebrew.mxcl.nginx.plist 。
需要把这个文件复制到 /Library/LaunchDaemons 下,系统启动时启动。 也可以复制到 /Library/LaunchAgents下,在用户登录时启动。 接着执行launchctl load -w,如下:
sudo cp /usr/local/opt/nginx/*.plist /Library/LaunchDaemons
sudo launchctl load -w /Library/LaunchDaemons/homebrew.mxcl.nginx.plist
最后,重启你的机器,你会发现nginx在80端口启动了,试着通过http://localhost直接访问。
四、分发效果