在 CentOS 版本 5.5(最终版)上的端口 80 上启动 tomcat
我想在端口 80 上启动 Tomcat 6.0.29。 我的操作系统是 CentOS 版本 5.5(最终版) 我更改了 $TOMCAT_HOME/conf/server.xml 中的以下行 我想在端口 80 上启动 Tomcat 6.0.29。 我的操作系统是 CentOS 版本 5.5(最终版) 我在 $TOMCAT_HOME/conf/server.xml 中更改了以下行 <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/> 到 <Connector connectionTimeout="20000" port="80" protocol="HTTP/1.1" redirectPort="8443"/> 然后我运行命令: sudo /etc/init.d/tomcat6 start 在文件 $TOMCAT_HOME/logs/catalina.log 中我发现了这样的异常: java.net.BindException: Permission denied <null>:80 at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:549) at org.apache.tomcat.util.net.JIoEndpoint.start(JIoEndpoint.java:565) at org.apache.coyote.http11.Http11Protocol.start(Http11Protocol.java:203) at org.apache.catalina.connector.Connector.start(Connector.java:1087) at org.apache.catalina.core.StandardService.start(StandardService.java:534) at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) at org.apache.catalina.startup.Catalina.start(Catalina.java:581) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) Caused by: java.net.BindException: Permission denied at java.net.PlainSocketImpl.socketBind(Native Method) at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:365) at java.net.ServerSocket.bind(ServerSocket.java:319) at java.net.ServerSocket.<init>(ServerSocket.java:185) at java.net.ServerSocket.<init>(ServerSocket.java:141) at org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:50) at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:538) ... 12 more 0:11:56 org.apache.catalina.startup.Catalina start SEVERE: Catalina.start: LifecycleException: service.getName(): "Catalina"; Protocol handler start failed: `java.net.BindException: Permission denied <null>:80 at org.apache.catalina.connector.Connector.start(Connector.java:1094) at org.apache.catalina.core.StandardService.start(StandardService.java:534) at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) at org.apache.catalina.startup.Catalina.start(Catalina.java:581) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) 0:11:56 org.apache.catalina.startup.Catalina start` 提前致谢 1-1023 范围内的端口具有特权。仅允许 root 绑定它们。 至少有两种方法可以解决这个问题: 以 root 身份运行。当然,您需要权衡由此带来的额外安全风险; Tomcat 本身的安全漏洞(我相信很少)以及您的 Web 应用程序包含的安全漏洞(例如,这可能导致人们读取 /etc/shadow 作为示例),而这又简单又直接。 使用 jsvc 作为服务运行。有关 jsvc 的详细信息,请参阅 http://tomcat.apache.org/tomcat-5.5-doc/setup.html。设置起来比较麻烦,但 root 只会参与设置端口,然后 Tomcat 将以没有特殊权限的用户身份运行。我推荐这个用于任何严肃的设置。 无论你选择哪种方式,Tomcat的实际启动都需要root权限。 ///BR,JenEriC 在 Tomcat 前面运行 Apache,并使用 mod_rewrite 将端口 80 (Apache) 上的所有请求连接到 AJP 端口 (8009) 上的 Tomcat。 yum install httpd chkconfig httpd on vi /etc/httpd/conf.d/proxy.conf RewriteEngine On RewriteRule ^/(.*)$ ajp://localhost:8009/$1 [P,QSA,L] service httpd start 你已经完成了。 您可以将“/etc/default/tomcat6”的 AUTHBIND 属性更改为“yes”,如下 AUTHBIND=yes 重新启动 Tomcat,这将使您能够使用可用的特权端口 (1-1023)。 另一种选择是使用 authbind。 来自维基百科: authbind 软件允许通常需要超级用户权限才能访问特权网络服务的程序作为非特权用户运行。 我使用nginx 2将80绑定到8080,这是tomcat绑定到的端口。 我的nginx配置是这样的: {服务器 listen 80; #which you can edit in /etc/hosts file.It can bind mydomain.com to 127.0.0.1 server_name mydomain.com; location / { proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:8080; } access_log logs/xxx456.tk_access.log; } 我在 Linux Mint 中也遇到了一个问题。当我想启动Tomcat 80端口时,出现权限被拒绝的错误。 我通过以root权限运行tomcat来修复它。 示例:- sudo ./startup.sh 转到地址:/tomcat7/server.xml,编辑文件:使用属性 porxyPort="80" <Connector port="8080" ... proxyPort="80"/> 这将导致此 Web 应用程序内的 servlet 认为所有代理请求都定向到端口 80 上的 www.mycompany.com。
python TCPServer 地址已在使用中,但我关闭服务器并使用 `allow_reuse_address`
这是我运行服务器的代码: 类 MyRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler): #.... 端口=8089 httpd = SocketServer.TCPServer(("", PORT), MyRequestHandler) httpd.
如何在不同端口后面的单个 Tomcat 实例上运行不同的应用程序?
目前我有 2 个 Web 应用程序 app1 和 app2 在 Tomcat 6 上运行: http://localhost:8080/app1 上的 app1 http://localhost:8080/app2 上的 app2 我想配置 Tomcat,以便它们在根目录下运行...
Wildfly Docker 容器在端口 5432 连接到 postgres 时连接被拒绝
我正在运行一个项目,该项目使用 Docker 将 war 文件部署到 Wildfly 服务器。 我计划使用 Wildfly 27.0.1.Final 和 Postgres 9.4。 这是我的 docker-compose.yml 文件: 版本:'2' 服务:
我从 java 类打开端口 #5955 以与客户端进行通信。完成后如何关闭此端口?哪个命令可以显示端口是否打开或关闭?
我想使用PHP中的mail()函数。为了做到这一点,我安装了 postfix。我正在 Ubuntu 18.04 上运行。 我的问题是我无法发送邮件,因为我有“连接被拒绝”...
为什么我的node.js应用程序部署在Heroku上时出现问题
当我将应用程序部署到 Heroku 时遇到以下问题。该应用程序在本地运行良好,但在部署到 Heroku 时,出现以下错误 2023-08-21T05:30:24.694959+00...
我正在尝试创建一个 Angular 应用程序,它允许用户动态创建图形。我目前正在尝试创建一个将端口添加到顶点的函数,我希望用户能够...
一个应用程序正在端口 3000 上运行,我想在默认端口的不同端口上运行另一个应用程序。我如何在 React Next.js 中更改此设置。 我的 package.js 脚本是 “脚本”:{ ...
我应该在哪里存储端口?简单的Java应用程序,Spring boot,maven
对于本地测试我的应用程序,我使用端口 8080,但在 AWS 服务器上需要使用 5000。 我建议我需要有 2 个配置文件,例如 application.yml 和 application_dev.yml。 application.yml - 端口:5000
我使用 Grafana 和 Prometheus。两者都安装在同一台服务器上,并且我不使用 docker。 最近我导入了 Node-Exporter 仪表板,并修改了 prometheus.yml 文件,如下所示: 全球...
访问被拒绝 :::nodejs 事件 498 中的 7000
我尝试使用 Express 监听端口: const http=require('http'); 常量 PORT_=process.env.PORT||7000; constexpress=require('express'); 常量应用=express(); app.use((req,res,下一个)=>{ 重新...
我已经使用 npm 本地隧道将本地主机打开到互联网以进行 webhook 并完成了我的工作。现在我不必要地公开了我的端口,但我仍然可以使用 URL 访问我的端口。现在我需要关闭...
端口 8080 即使在格式化为不同的操作系统后仍然显示旧面板使用它
我目前在 VPS 上运行 Ubuntu 20.24,我以前运行 Windows Server 2019,然后重新格式化它。虽然它被设置为 Windows Server 2019,但我已经安装了 CubeCoders AMP,它使用端口 8080 用于...
我正在尝试启动板凳,但显示以下错误。 错误截图 当我杀死在端口 8000 上运行的所有进程时... 有人请指导...... 试图通过使用 ...
Python 子进程 rsync 使用 sshpass 并指定端口
我四处搜索了很多,找到了我希望实现但不完整的部分。我正在制作一个同步脚本来同步两台机器之间的文件。剧本本身有点多
在 Windows 10 中为我的本地开发计算机 Docker 容器 HOST_PORT 号查找可用和开放的 TCP 端口号
在 Windows 10 中为我的本地开发计算机 Docker 容器 HOST_PORT 号查找可用和开放的 TCP 端口号 对于我本地的开发电脑Docker容器HOST_PORT号...
如何设置 portmap.io 正在使用的 vpn 服务器?
我目前正在使用 OpenVPN 将我在服务器后面的 NAT 公开给公众。我已经通过使用 portmap.io VPN 服务成功实现了这一点,该服务允许公共用户访问...
我怎样才能用静态 IP 连接 2 台 PC 并让它们相互通信而不发现对方?
我怎样才能用静态 IP 连接 2 台 PC,让它们相互通信而不发现对方? 通过路由器我尝试了但没有结果。
我在 EF C# 中有一个项目,它是一个带登录的普通系统,但我需要解决这个问题,我很累 这就是我说的 在此处输入图片描述