假设

  • SSL 证书和私钥路径已知
  • Docker 应用运行在 localhost 的 5230 端口上

HTTP 自动跳转 HTTPS

  • 编辑或创建 Nginx 配置文件,例如 /etc/nginx/conf.d/memos.conf
  • 配置文件内容如下:
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    
         server {
             listen 80;
             server_name your_domain.com;
             return 301 https://$server_name$request_uri;
         }
    
         server {
             listen 443 ssl;
             server_name your_domain.com;
    
             ssl_certificate /path/to/your/fullchain.pem;
             ssl_certificate_key /path/to/your/privkey.pem;
    
             ssl_session_cache shared:SSL:1m;
             ssl_session_timeout  10m;
             ssl_ciphers HIGH:!aNULL:!MD5;
             ssl_prefer_server_ciphers on;
    
             location / {
                 proxy_pass http://localhost:5230;
                 proxy_set_header Host $host;
                 proxy_set_header X-Real-IP $remote_addr;
                 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                 proxy_set_header X-Forwarded-Proto $scheme;
             }
         }
    

注意

  • 替换 your_domain.com 为你的实际域名。

  • 将 /path/to/your/fullchain.pem 和 /path/to/your/privkey.pem 替换为你的证书和私钥的实际路径。

  • 保存配置文件后,运行以下命令以使更改生效:

    1
    2
    
         sudo nginx -t
         sudo systemctl reload nginx
    
  • 确保防火墙和安全组规则允许从外部访问 80 和 443 端口。