需要支持编写 Nginx 规则

需要支持编写 Nginx 规则

我已经在 7000 端口部署了前端应用程序。因此,我需要在 Nginx 中编写一条规则,以便所有来自 7000 (HTTP://example.com:7000) 端口的 HTTP 请求都会自动将 HTTPS 重定向到同一端口 (HTTPS://example.com:7000)

请帮助我解决该问题。这是我当前的 Nginx 配置文件

    server {       
    listen 7000 ssl;
    ssl_certificate /new_keys/new_k/ssl_certificate/star_file.crt;
    ssl_certificate_key /new_keys/new_k/ssl_certificate/private.key;

    root /home_directory;
    index index.html index.htm index.nginx-debian.html;
    server_name _;
    location / {
    try_files $uri $uri/ =404;
    }
    error_page 404 /custom_404.html;
    location = /custom_404.html {
            root /usr/share/nginx/html;
            internal;
    }
    }

笔记 :

  1. 在 7000 端口提供服务的应用程序 URL 是“http://example.com:7000/#/
  2. 端口 80 已被另一个应用程序占用
  3. 目前我有一个通配符 SSL 证书
  4. 服务器 IP 仅指向单个域

答案1

尝试使用错误代码 497 的自定义错误页面。当通过 http 访问 https 网站时,nginx 会引发此错误。只需添加:

error_page 497 https://$host:$server_port$request_uri;

到您的配置,它应该完全按照您在问题中定义的要求进行操作。

请参阅以下讨论以获取更多信息: 使用 nginx 的单个端口处理 http 和 https 请求

答案2

您不能使用 NGINX 同时监听 HTTP 和 HTTPS,您需要两个单独的端口。

为什么应用程序已经在端口 80 上运行会阻止您添加另一个域?

相关内容