服务器总是返回“404 page not found”和“Client sent a HTTP request to an HTTPS server”错误

如何解决服务器总是返回“404 page not found”和“Client sent a HTTP request to an HTTPS server”错误

我最近使用标准安装选项将我的服务器操作系统从 CentOS 7 迁移到 CentOS 8 流。现在我在访问 HTTP/S 服务器时遇到错误。

假设您在端口 80 或 443 上运行 http 服务器。例如使用 python 模块 http.server

$> sudo python3 -m http.server -b xxx.xxx.xxx.xxx 80[or 443]

这里,xxx.xxx.xxx.xxx代表公网IP,http.server可以替换为Apache、Nginx或Podman容器等任意Web服务器。

为了避免防火墙的影响,我禁用了firewalld.service

$> sudo systemctl stop firewalld.service

此外,在运行 http 服务器之前,我通过以下方式确认没有其他进程在侦听端口 80 或 443:

$> netstat -lnt | grep 80[or 443]
$> # nothing returned

因此,通常当有人访问此服务器时,例如使用:

curl xxx.xxx.xxx.xxx

它应该用来自正在运行的服务器的一些内容来响应,例如当前目录下的文件夹和文件。

但就我而言,此命令在端口 80 上返回“404 页面未找到”,并且在端口 443 上返回“客户端向 HTTPS 服务器发送了 HTTP 请求。”分别以纯文本形式。此错误仅发生在具有公共 IP 访问权限的端口 80 和 443 上,这意味着以下操作有效。

$> curl localhost

其实,有没有正在运行的http服务器并不重要。好像有一个不可见的 HTTP 服务器并且以更高的优先级运行。

我尝试了很多来处理这个错误,发现当 firewalld.service 的状态发生变化时,例如停止/启动/重新启动 firewalld.service,会有很短的时间(大约 10 秒)到更改后正常访问正在运行的服务器。

所有正在运行的服务如下:

liuchang@xenonpy ~ ❯❯❯ systemctl --type=service --state=running
UNIT                     LOAD   ACTIVE SUB     DESCRIPTION
accounts-daemon.service  loaded active running Accounts Service
atd.service              loaded active running Job spooling tools
auditd.service           loaded active running Security Auditing Service
avahi-daemon.service     loaded active running Avahi mDNS/DNS-SD Stack
chronyd.service          loaded active running NTP client/server
colord.service           loaded active running Manage,Install and Generate Color Profiles
crond.service            loaded active running Command Scheduler
cups.service             loaded active running CUPS Scheduler
dbus.service             loaded active running D-Bus System Message Bus
firewalld.service        loaded active running firewalld - dynamic firewall daemon
gdm.service              loaded active running GNOME Display Manager
gssproxy.service         loaded active running GSSAPI Proxy Daemon
irqbalance.service       loaded active running irqbalance daemon
k3s.service              loaded active running Lightweight Kubernetes
ksmtuned.service         loaded active running Kernel Samepage Merging (KSM) Tuning Daemon
libstoragemgmt.service   loaded active running libstoragemgmt plug-in server daemon
mcelog.service           loaded active running Machine Check Exception Logging Daemon
ModemManager.service     loaded active running Modem Manager
NetworkManager.service   loaded active running Network Manager
packagekit.service       loaded active running PackageKit Daemon
polkit.service           loaded active running Authorization Manager
rdma-ndd.service         loaded active running RDMA Node Description Daemon
rhsmcertd.service        loaded active running Enable periodic update of entitlement certificates.
rngd.service             loaded active running Hardware RNG Entropy Gatherer Daemon
rpcbind.service          loaded active running RPC Bind
rsyslog.service          loaded active running System Logging Service
rtkit-daemon.service     loaded active running RealtimeKit Scheduling Policy Service
smartd.service           loaded active running Self Monitoring and Reporting Technology (SMART) Daemon
sshd.service             loaded active running OpenSSH server daemon
sssd.service             loaded active running System Security Services Daemon
systemd-journald.service loaded active running Journal Service
systemd-logind.service   loaded active running Login Service
systemd-machined.service loaded active running Virtual Machine and Container Registration Service
systemd-udevd.service    loaded active running udev Kernel Device Manager
tuned.service            loaded active running Dynamic System Tuning Daemon
udisks2.service          loaded active running Disk Manager
upower.service           loaded active running Daemon for power management
user@1000.service        loaded active running User Manager for UID 1000
user@42.service          loaded active running User Manager for UID 42
wpa_supplicant.service   loaded active running WPA supplicant

LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state,i.e. generalization of SUB.
SUB    = The low-level unit activation state,values depend on unit type.

40 loaded units listed. Pass --all to see loaded but inactive units,too.
To show all installed unit files use 'systemctl list-unit-files'.

我对此一无所知,希望有人可以帮助我。提前致谢!

解决方法

您在没有任何其他上下文的情况下运行 http 服务器,因此基本上它会向您显示执行命令的目录的目录列表。

现在,如果您得到 404,则意味着 curl 附加了 index.html http://..../index.html。

执行此操作的“正确”方法是指定服务器提供服务的路径,然后它就会工作。

为此,只需转到包含 index.html 的文件夹,从那里运行 http.server 并重试,它应该可以正确显示内容。

有关更多示例,请查看此处: https://stackabuse.com/serving-files-with-pythons-simplehttpserver-module/

编辑:引起我注意的是,您似乎正在运行一个实际的 Web 服务器,但是...没有使用 apache?不是nginx?

如果你按照我说的那样做,http.server 将提供 index.html

enter image description here

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 <select id="xxx"> SELECT di.id, di.name, di.work_type, di.updated... <where> <if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 <property name="dynamic.classpath" value="tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams['font.sans-serif'] = ['SimHei'] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -> systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping("/hires") public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate<String
使用vite构建项目报错 C:\Users\ychen\work>npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-