在默认情况下Linux的1024以下端口是只有root用户才有权限占用,我们的tomcat,apache,nginx等等程序如果想要用普通用户来占用80端口的话就会抛出 BindException: Permission denied的异常。
解决办法有三种:
-
使用非80端口启动程序,然后再用iptables做一个端口转发。
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
用root用户直接去执行就可以了! -
使用nginx转发,当然nginx需要使用root权限
-
使用root权限直接运行tomcat
建议还是nginx转发,特殊uri特殊对待,直接把tomcat扔80工作不好 .
用nginx+tomcat,做动静分离,nginx访问静态文件,其余的动态请求抛给tomcat处理,nginx里还可以做很多过滤的措施,使用nginx挡在前面是一种很好的做法
网友评论