Nginx

需要支持寫一個 Nginx 規則

  • September 18, 2020

我已經在 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 僅指向單個域

嘗試對錯誤程式碼 497 使用自定義錯誤頁面。當通過 http 訪問 https 網站時,nginx 會引發此錯誤。只需添加:

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

到您的配置,它應該完全按照您在問題中定義的要求。

在下面的討論中查找更多資訊: 使用帶有 nginx 的單個埠處理 http 和 https 請求

你不能用 NGINX 同時監聽 HTTP 和 HTTPS,你需要兩個獨立的埠。

為什麼應用程序已經在埠 80 上執行,這會阻止您添加另一個域?

引用自:https://serverfault.com/questions/1034305