【问题标题】:401 error on API over HTTPS, but not over HTTPAPI 上的 401 错误通过 HTTPS,但不是通过 HTTP
【发布时间】:2021-11-30 12:27:21
【问题描述】:

我正在尝试使用 axios、Vue 与我的 mongoDB 数据库链接,而我的服务器正在运行 NGINX。

在我的 App.vue 文件中,axios 请求所在的位置,我有这个:

export default {
  name: 'App',
  data(){
    return {
      baseApiURL: '[HTTP or HTTPS]://example.com:4000/api',

这适用于 HTTP。当我将其更改为 HTTPS 时,它不会。我尝试过使用 IP 地址和域地址。 Chrome 上的网络标签显示:

Request URL: https://www.example.com/api/
Request Method: GET
Status Code: 401 Unauthorized

我不明白这到底是什么意思。

我的 NGINX 配置:

server {
  listen 80 default_server;
  ssl on;
  listen 443;
  server_name example.com;

  ssl_certificate /usr/src/app/ssl/domain.cert.pem;
  ssl_certificate_key /usr/src/app/ssl/private.key.pem;

  # vue app & front-end files
  location / {
    root /usr/src/app/dist;
    try_files $uri /index.html;
  }

  # node api reverse proxy
  location /api/ {
    proxy_pass http://localhost:4000/;
  }
}

我不确定我是否应该在此信息中包含任何其他内容,请告诉我。我觉得这应该是一个小问题,因为它是通过 HTTP 工作的。

【问题讨论】:

  • 您的反向代理正在使用 HTTP,它可能试图以不正确的方式访问加密连接
  • @AlexW,你的意思是我应该在 proxy_pass 上使用 https 吗?我刚试过,但现在错误是 502 bad gateway
  • this link 有帮助吗?有一个带有 SSL 的反向代理示例。仅供参考,他们正在使用我认为已弃用的 TLSv1 和 TLSv1.1
  • @AlexW 不幸的是,它看起来不像,我尝试了各种不同的设置,但仍然出现错误。似乎我在帖子中的 401 错误配置是最接近正确的,不知何故

标签: mongodb api rest nginx axios


【解决方案1】:

不是真正的“答案”,因为它不能解决确切的初始问题,但我通过使用 Caddy 服务器而不是 NGINX 解决了我的网站无法通过 HTTPS 工作的问题,它以某种方式自动完成。

【讨论】:

    猜你喜欢
    • 2017-06-01
    • 1970-01-01
    • 2016-04-08
    • 1970-01-01
    • 2012-11-16
    • 1970-01-01
    • 2016-06-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多