当前位置: 首页 > news >正文

Mac下Tomcat安装配置80默认端口设置

序言: 在学习Tomcat时, 部署虚拟服务主机时,遇到了无响应的情况.原以为是应为Tomcat默认端口8080在调整至(进行端口转发设置)默认端口80会和Mac自带Apache起冲突.但是也有同学使用Mac却得到响应.这里笔者重新记录一下.

 1 Tomcat的安装 

  1. 进入阿帕奇官网http://tomcat.apache.org/ 如下图(最好点击Which version 判断你需要哪一个版本)

          

  2. 笔者使用8.5.23版本 兼容Java7以及之后的版本(由于先在大部分情况下公司使用Java6 or Java7)

  点击 Core下的tar.gz 开始下载

 

  3.将下载好的文件该名称为Tomcat方便后续使用

  4.进入Mac下的资源库(/Library/) 将文件夹放到该处

  5 进入终端(Terminal) 输入 以下命令行

~$ cd /Library/Tomcat/bin
~$ ./startup.sh

   ./startup.sh表示开启Tomcat服务器

  此时在页面地址栏输入localhost:8080(127.0.0.1  Tomcat默认端口是8080)会出现可爱的小猫即Tomcat页面

  ./shutdown.sh表示关闭服务器

  注意:由于Mac是Unix,同Linux一样1024以下端口是没有监听权限的,当将Tomcat设置为默认80端口是无法响应的

 2 设置默认80端口 

 

   mac下8080端口到80端口的转发
   MAC OS 本质上还是 Unix 系统, Unix 系统大多默认情况下非root用户是无法使用小于1024的常用端口的.这时候如果你开发中需要在普通用户下用到80端口, 比如       tomcat, 比如 vitualbox 下构建了一个 http 服务, 若你想直接通过 浏览器的 localhost 访问的话(不用加上莫名其妙的”:端口”的话)你就需要做一些系统端口转发的工作.

 MAC OS 10.10 上 pfctl 就可以做这一件事情, 详情请参见 

1、创建文件 :

 sudo vim /etc/pf.anchors/eclipse.tomcat.forwarding

文件内容 : 

rdr pass on lo0 inet proto tcp from any to 127.0.0.1 port 80 -> 127.0.0.1 port 8080
rdr pass on lo0 inet proto tcp from any to 127.0.0.1 port 443 -> 127.0.0.1 port 8443
2、创建文件 :

sudo vim /etc/pf-tomcat.conf
文件内容 :

rdr-anchor "forwarding"
load anchor "forwarding"from "/etc/pf.anchors/eclipse.tomcat.forwarding"
3、启动
sudo pfctl -ef /etc/pf-tomcat.conf
执行结果
复制代码
root@ymdeMacBook-Air etc# sudo pfctl -ef /etc/pf-tomcat.conf
pfctl: Use of -f option, could result in flushing of rules
present in the main ruleset added by the system at startup.
See /etc/pf.conf for further details.

No ALTQ support in kernel
ALTQ related functions disabled
pf enabled 
复制代码
假设你的工程 http://localhost/myDemo.html 这时访问你的web工程, 你会发现 http://localhost/myDemo.html 这个不需要8080端口即可访问,加上 http://localhost:8080/myDemo.html 访问不了。

4、关闭
sudo pfctl -d
执行结果
root@ymdeMacBook-Air etc# sudo pfctl -d
No ALTQ support in kernel
ALTQ related functions disabled
pf disabled
这时你访问你的web工程, 你会发现 http://localhost/myDemo.html 这个访问不了,加上 http://localhost:8080/myDemo.html 即可访问。

或者全部关闭
pfctl -F all -f /etc/pf.conf

然并卵 本人依然无法使用80端口 localhost显示 it works 是Apache服务器使用着

输入以下代码 查看80端口的占用情况

~$ lsof -i:80
SiegdeMacBook-Pro:bin Sieg$ lsof -i:80
COMMAND   PID USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
Google    270 Sieg   63u  IPv4 0x2fa1ca9090a3144f      0t0  TCP 192.168.1.101:63417->47.95.49.160:http (ESTABLISHED)
Google    270 Sieg   64u  IPv4 0x2fa1ca909bced777      0t0  TCP 192.168.1.101:63325->117.122.217.19:http (ESTABLISHED)
Google    270 Sieg   95u  IPv4 0x2fa1ca90883bd777      0t0  TCP 192.168.1.101:63386->117.122.217.19:http (ESTABLISHED)
Google    270 Sieg  124u  IPv4 0x2fa1ca90883b9777      0t0  TCP 192.168.1.101:62863->58.218.215.168:http (ESTABLISHED)
Google    270 Sieg  133u  IPv4 0x2fa1ca9090a2f06f      0t0  TCP 192.168.1.101:63080->58.218.215.161:http (ESTABLISHED)
Google    270 Sieg  134u  IPv4 0x2fa1ca90909d544f      0t0  TCP 192.168.1.101:63081->58.218.215.161:http (ESTABLISHED)
Google    270 Sieg  136u  IPv4 0x2fa1ca90883f344f      0t0  TCP 192.168.1.101:63422->101.201.169.146:http (ESTABLISHED)
Google    270 Sieg  137u  IPv4 0x2fa1ca909bd94777      0t0  TCP 192.168.1.101:63423->47.95.49.160:http (ESTABLISHED)
Google    270 Sieg  142u  IPv4 0x2fa1ca909c2ba967      0t0  TCP 192.168.1.101:63424->47.95.49.160:http (ESTABLISHED)
Google    270 Sieg  145u  IPv4 0x2fa1ca909bd69e7f      0t0  TCP 192.168.1.101:62869->58.218.215.161:http (ESTABLISHED)
Google    270 Sieg  151u  IPv4 0x2fa1ca909c230777      0t0  TCP 192.168.1.101:63427->117.122.217.6:http (ESTABLISHED)
Google    270 Sieg  152u  IPv4 0x2fa1ca90909d144f      0t0  TCP 192.168.1.101:63428->117.122.217.6:http (ESTABLISHED)
Google    270 Sieg  153u  IPv4 0x2fa1ca909bd7306f      0t0  TCP 192.168.1.101:63429->117.122.217.6:http (ESTABLISHED)
Google    270 Sieg  159u  IPv4 0x2fa1ca909bda844f      0t0  TCP 192.168.1.101:63430->117.122.217.6:http (ESTABLISHED)
Google    270 Sieg  174u  IPv4 0x2fa1ca9090eebe7f      0t0  TCP 192.168.1.101:62984->58.218.215.161:http (ESTABLISHED)
Google    270 Sieg  185u  IPv4 0x2fa1ca909bd20b57      0t0  TCP 192.168.1.101:63432->124.14.23.249:http (ESTABLISHED)
Google    270 Sieg  186u  IPv4 0x2fa1ca9090eaf25f      0t0  TCP 192.168.1.101:63433->124.14.23.249:http (ESTABLISHED)
Google    270 Sieg  187u  IPv4 0x2fa1ca909bd70b57      0t0  TCP 192.168.1.101:63434->124.14.23.249:http (ESTABLISHED)
Google    270 Sieg  188u  IPv4 0x2fa1ca909bdb0e7f      0t0  TCP 192.168.1.101:63436->61.135.186.152:http (CLOSE_WAIT)
Google    270 Sieg  189u  IPv4 0x2fa1ca909bd13b57      0t0  TCP 192.168.1.101:63435->61.135.162.115:http (CLOSE_WAIT)
Google    270 Sieg  192u  IPv4 0x2fa1ca908834125f      0t0  TCP 192.168.1.101:62906->117.122.217.6:http (ESTABLISHED)
Google    270 Sieg  193u  IPv4 0x2fa1ca909be1644f      0t0  TCP 192.168.1.101:62905->58.218.215.161:http (ESTABLISHED)
Google    270 Sieg  194u  IPv4 0x2fa1ca9090a38b57      0t0  TCP 192.168.1.101:62907->124.14.23.249:http (ESTABLISHED)
Google    270 Sieg  201u  IPv4 0x2fa1ca909bd19777      0t0  TCP 192.168.1.101:63084->58.218.215.168:http (ESTABLISHED)
Google    270 Sieg  206u  IPv4 0x2fa1ca909bd2c25f      0t0  TCP 192.168.1.101:63089->117.122.217.6:http (ESTABLISHED)
Google    270 Sieg  239u  IPv4 0x2fa1ca9090ef106f      0t0  TCP 192.168.1.101:62989->124.14.14.215:http (ESTABLISHED)
lantern   442 Sieg   37u  IPv4 0x2fa1ca909c22a25f      0t0  TCP 192.168.1.101:50602->a23-41-75-27.deploy.static.akamaitechnologies.com:http (ESTABLISHED)
lantern   442 Sieg   42u  IPv4 0x2fa1ca909c0de44f      0t0  TCP 192.168.1.101:65367->a23-41-75-27.deploy.static.akamaitechnologies.com:http (ESTABLISHED)
lantern   442 Sieg   47u  IPv4 0x2fa1ca9090ef4777      0t0  TCP 192.168.1.101:62995->101.201.170.241:http (ESTABLISHED)
  • 笔者关闭了lantern 并关闭了Apache服务器

关闭Apache

~$ sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist

启动Apache

~$ sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist
  • 关闭Apache之后,查看80端口 现在已经没有占用情况了

重新设置80端口转发

~$ sudo pfctl -ef /etc/pf-tomcat.conf

再去浏览器输入localhost看看

成功了!!!

转载于:https://www.cnblogs.com/kaffeetrinken/p/7655242.html

相关文章:

  • Jzoj4699 Password
  • (十)T检验-第一部分
  • [Bzoj4722]由乃(线段树好题)(倍增处理模数小快速幂)
  • JAVA-JSP内置对象之request对象的其他方法
  • SVN冲突解决
  • JavaScript table动态生成数据
  • python-爬虫day1
  • 调用自定义验证码出现的问题
  • 程序媛,坚持这几个好习惯让你越来越美
  • 从零开始学习springBoot3(自定义json解析框架)
  • unity ugui图片自适应文字内容大小
  • Maven学习总结(四)——Maven核心概念
  • linux 命令cp拷贝
  • 屏蔽干扰CSS
  • [原]【开源框架】Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发,欢迎各位......
  • 《剑指offer》分解让复杂问题更简单
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • CSS盒模型深入
  • go append函数以及写入
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • Leetcode 27 Remove Element
  • MaxCompute访问TableStore(OTS) 数据
  • MQ框架的比较
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • RxJS: 简单入门
  • Selenium实战教程系列(二)---元素定位
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • SQLServer之创建显式事务
  • 高性能JavaScript阅读简记(三)
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 前言-如何学习区块链
  • 三分钟教你同步 Visual Studio Code 设置
  • 什么软件可以剪辑音乐?
  • 手机端车牌号码键盘的vue组件
  • 详解NodeJs流之一
  • #HarmonyOS:Web组件的使用
  • ${ }的特别功能
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (33)STM32——485实验笔记
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (分享)自己整理的一些简单awk实用语句
  • (黑马C++)L06 重载与继承
  • (七)Knockout 创建自定义绑定
  • (十六)Flask之蓝图
  • (学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解
  • (转)JVM内存分配 -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m
  • **python多态
  • .Net CF下精确的计时器
  • .NET Core工程编译事件$(TargetDir)变量为空引发的思考
  • .NET NPOI导出Excel详解
  • .net refrector
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...