Linux系统下Tomcat使用80端口的方法
应用场景
很多情况下,我们在linux服务器上安装了tomcat或者nginx之类的软件.
当我们想用80端口的时候,如果不用root用户启动就会报错.
这是因为,对于linux系统而言,1024以下的端口,普通用户是无法使用的.
网上关于这方面的解决方案有两种,一种呢就是什么给文件root权限.
还有一种就是做端口的跳转.我觉得可能端口跳转可能比较安全吧.就着重介绍一下怎么配置.
IPTABLES
在这里我们主要做的是本机的端口跳转,我主要说下如何设置以及删除.
关于iptables的详细信息,可以参考网上很多资料.
添加一个端口的映射
现在我们要做一件事情,假设我们的linux上安装了tomcat.默认访问端口是8080.
现在我想做到当用户访问80端口的时候就能访问到tomcat了.
只需要在root用户下执行命令
iptables -t nat -A PREROUTING -p tcp –dport 80 -j REDIRECT –to-port 8080
-t nat : 指出我要操作什么表.(不写就表示filter.默认是filter)
-A PREROUTING : A 添加的意思.表示我要在PREROUTING 中添加一个规则
–dport 80 : 如果请求80端口.
–to-port 8080 : 那么就转到8080端口.
测试如下 :
如何删除规则
从上面我们可以看出,我们是在 nat表的PREROUTING 中添加的规则.
所以我们就要去nat表的PREROUTING 中删除这个规则.
iptables -t nat -L -nv --line-numbers
这个命令的作用是,列出nat表中的规则,并且给个num.
然后我们就可以利用这个id删除这个规则了.
如果你不写-t nat 那么默认查找的就是filter表.那么就无法查找规则.
利用这个语句就可以删除这个规则了.
-t nat : 表示我要操作这个表,不指明就是filter.
-D : 表示执行删除操作
PREROUTING : 表示nat表中哪一个链. 后面数字1 就是上图中的num
总结
我做了下面几个实验,nginx占用80端口.tomcat占用8080端口.
开启nginx,tomcat
1. 如果开启了转跳,那么就访问不到nginx了.因为访问80端口的时候一下跳到8080端口去了.
2 关闭端口跳转,就能访问到nginx了.
3 从上可以看出,端口跳转不会占用端口.
4 如果添加规则访问没有达到想要的效果,清楚浏览器缓存就可以了.
5 以上所有操作重启以后全部消失.如果要保留操作,请执行 service iptables restart
好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对ZaLou.Cn的支持。
- 实现属于自己的TensorFlow(一) - 计算图与前向传播
- 基于Sanic的微服务基础架构
- hdu 3038 How Many Answers Are Wrong ( 带 权 并 查 集 )
- Java 基础知识点(必知必会其二)
- Java 基础知识点(必知必会其一)
- PyQt5 GUI应用程序工具包入门(3)—信号槽
- web基础之hibernate(一篇)
- 微信小程序头脑王者辅助神器
- web基础之Structs(一篇)
- S3上传代码用例-golang
- jsp-------------之分页技术(一)
- ------------数据库的加锁操作(上)
- 对象存储基础概念
- 关于byte[]字节传输的大端和小端小议
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Python入门系列第二章--第二节:注释
- JavaScript进阶教程(4)-函数内this指向解惑call(),apply(),bind()的区别
- 第三章--第一节:条件判断语句
- 用 Python 实现朋友圈中的九宫格图片
- 第三章--第二节:循环语句
- 第三章--第三节:列表
- 第三章--第三节(补充):列表排序
- 第三章--第四节:字典
- 2020最新Android面筋:太难了!历经一周对接6个面试官后,我的头条Offer终于来了!
- 第三章--第五节:集合
- Python 爬虫超详细讲解(零基础入门,老年人都看的懂)
- JavaWeb - Linux Operating System
- 第三章--第六节:元祖
- JavaWeb - 开发环境搭建和 Shell 编程
- 第四章--第一节:函数