Mac OS X 绑定80端口,不装nginx的小技巧

Posted zhitest

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mac OS X 绑定80端口,不装nginx的小技巧相关的知识,希望对你有一定的参考价值。

Mac OS X 因为要绑定80端口需要ROOT权限, 但是如果用root权限启动eclipse或tomcat又会造成, 启动创建的各类文件是root的,普通用户无法删除。
为此, 我们可以通过pfctl做网络层的端口转发, 让连接到本机80端口的请求, 都转发到9090端口; (注意, Mac OS 会使用80端口做网络文件共享, 要先关闭掉)
修改/etc/pf.conf, 使用sudo vim /etc/pf.conf?pf.conf是对顺序强要求的, 所以注意添加的内容放的顺序
[java] view plain copy
 
1. rdr-anchor "com.apple/*"  
rdr on lo0 inet proto tcp from any to 127.0.0.1 port 80 -> 127.0.0.1 port 9090?添加rdr on lo0 inet proto tcp from any to 127.0.0.1 port 80 -> 127.0.0.1 port 9090 到pf.conf文件的rdr-anchor "com.apple/*" 这一行后面。
lo0 通过ifconfig 看自己那个设备绑定的是127.0.0.1, lo0是这个网络设备的名字。 修改好pf.conf之后执行一下命令,让端口转发生效
[plain] view plain copy
 
1. sudo pfctl -d  
2.   
3.   
4. sudo pfctl -f /etc/pf.conf  
5.   
6.   
7. sudo pfctl -e  
在tomcat的配置中,设定启动端口为9090
好了这样只需要普通权限启动tomcat在9090端口即可, 访问本地应用时直接访问80端口即可。

以上是关于Mac OS X 绑定80端口,不装nginx的小技巧的主要内容,如果未能解决你的问题,请参考以下文章

求助nginx绑定多个网站公用80端口的问题

我可以将非特权应用程序绑定到 Mac OS X 上的特权端口吗?

解决mac os x下 tomcat启动报 java.net.BindException: Permission denied <null>:80 错误

Mac OS普通用户启动80端口

tomcat绑定域名,在不修改端口号为80的情况下,如何隐藏端口

linux下docker启动nginx无法访问80端口