我正在运行 EC2 ubuntu 服务器,并且我的网站使用 NGINX 和适当的 (LetsEncrypt) 证书通过 HTTPS 提供服务。我正在使用 Node.js 和 Vercel.app 来开发网站;
前端托管在子域上,例如https://admin.example.com,而原始域名是 http://example.com
该网站在 PC 网络浏览器上运行,但在使用移动网络浏览器时出现问题。当我尝试访问 URL 时,它返回以下错误:
错误:获取失败
我检查了 CORS。我只在节点代码上尝试过,在 NGINXwith it 或 NGINXalone 上尝试过。
现在 CORS 设置同时应用于后端和 NGINX。
我现在唯一怀疑的是 DNS 服务器已通过 example.co.kr 认证,而前端域正在使用 admin.example.co.kr
这是否会导致这个问题,只有移动设备才会出现
failed to fetch
错误?
我还检查了 NGINX。
来自移动请求的日志如下
109.202.99.36 - - [18/Jun/2024:02:43:28 +0000]
"GET /config.yaml HTTP/1.1" 404 150 "-" "Go-http-client/1.1"
"GET /.ssh/id_ecdsa HTTP/1.1" 404 152 "-" "Go-http-client/1.1"
"GET /etc/ssl/private/server.key HTTP/1.1" 404 159 "-" "Go-http-client/1.1"
"GET /.ssh/id_ed25519 HTTP/1.1" 404 155 "-" "Go-http-client/1.1"
"GET /web.config HTTP/1.1" 404 150 "-" "Go-http-client/1.1"
"GET /dump.sql HTTP/1.1" 404 148 "-" "Go-http-client/1.1"
"GET /.git/HEAD HTTP/1.1" 404 149 "-" "Go-http-client/1.1"
"GET /wp-admin/setup-config.php HTTP/1.1" 404 160 "-" "Go-http-client/1.1"
"GET /.env HTTP/1.1" 404 143 "-" "Go-http-client/1.1"
"GET /config/production.json HTTP/1.1" 404 157 "-" "Go-http-client/1.1"
"GET /config/database.php HTTP/1.1" 404 154 "-" "Go-http-client/1.1"
"GET /backup.tar.gz HTTP/1.1" 404 152 "-" "Go-http-client/1.1"
"GET /backup.zip HTTP/1.1" 404 150 "-" "Go-http-client/1.1"
"GET /.kube/config HTTP/1.1" 404 151 "-" "Go-http-client/1.1"
"GET / HTTP/1.1" 404 139 "-" "Go-http-client/1.1"
"GET /.svn/wc.db HTTP/1.1" 404 150 "-" "Go-http-client/1.1"
"GET /backup.sql HTTP/1.1" 404 150 "-" "Go-http-client/1.1"
"GET /.ssh/id_rsa HTTP/1.1" 404 150 "-" "Go-http-client/1.1"
"GET /wp-config.php HTTP/1.1" 404 152 "-" "Go-http-client/1.1"
"GET /server.key HTTP/1.1" 404 149 "-" "Go-http-client/1.1"
"GET /etc/shadow HTTP/1.1" 404 149 "-" "Go-http-client/1.1"
"GET /config.php HTTP/1.1" 404 149 "-" "Go-http-client/1.1"
"GET /config.xml HTTP/1.1" 404 150 "-" "Go-http-client/1.1"
"GET /secrets.json HTTP/1.1" 404 150 "-" "Go-http-client/1.1"
"GET /phpinfo.php HTTP/1.1" 404 148 "-" "Go-http-client/1.1"
"GET /database.sql HTTP/1.1" 404 150 "-" "Go-http-client/1.1"
"GET /docker-compose.yml HTTP/1.1" 404 154 "-" "Go-http-client/1.1"
"GET /server-status HTTP/1.1" 404 151 "-" "Go-http-client/1.1"
"GET /config.json HTTP/1.1" 404 150 "-" "Go-http-client/1.1"
"GET /config.yml HTTP/1.1" 404 149 "-" "Go-http-client/1.1"
"GET /.env.production HTTP/1.1" 404 153 "-" "Go-http-client/1.1"
"GET /.aws/credentials HTTP/1.1" 404 153 "-" "Go-http-client/1.1"
我不知道为什么移动请求在通过相同的前端 URL 请求时会要求此类系统文件。
前面的代码根本不需要这样的文件
这可能是移动请求出错的原因吗?
或者当然 CORS 仍然可能是一个问题。 如果您认为我遗漏了什么,请告诉我。
我对处理代码和代理尤其是 HTTPS 还很陌生。
建议不一定是我的问题的正确答案或解决方案。我正在学习,如果有任何可疑之处,请告诉我,我会尝试一下,当然会很感激
** 添加了 **
这是我在移动设备上的错误日志。
23-1b3e0fc6b991dd5e.js:1 Fetch finished loading: GET "https://admin.yjhorion.co.kr/?_rsc=qsrma".
layout-59b53b766e4a5b77.js:1 Fetch failed loading: GET "https://yjhorion.co.kr/auth".
page-d1c4f42e23a616bd.js:17 Fetch failed loading: GET "https://yjhorion.co.kr/CompQC/D".
GET https://yjhorion.co.kr/auth net::ERR_SSL_PROTOCOL_ERRORlayout-59b53b766e4a5b77.js:1 layout-59b53b766e4a5b77.js:1
GET https://yjhorion.co.kr/CompQC/D net::ERR_SSL_PROTOCOL_ERROR page-d1c4f42e23a616bd.js:17
好吧。有2个问题已经解决了。
首先,我的 Nginx 配置错误。 我修复了它,因此 http 和 https 都可用。
其次,我使用的是后端 DNS 服务器的子域。
子域名和后端域名共享相同的IP,但前端和后端是分开部署的。
因此,我删除了部署在 Vercel 上的前端服务器的子域设置,它现在工作得很好。
我仍然不确定为什么它在 PC 网络上运行良好。
如果我知道原因我会添加它。