YeeKal

nginx

YeeKal
"#"
  • http 和https的同步配置
  • 路径

https 发起http 跨域请求

在Nginx中,你可以配置服务器来接收HTTPS请求,并将这些请求转发到HTTP后端。这通常涉及到设置一个SSL/TLS终端,以及配置代理来转发请求。以下是具体的步骤和配置示例:

步骤 1: 生成SSL/TLS证书 首先,你需要为Nginx服务器生成SSL/TLS证书。你可以使用Let's Encrypt免费获取证书,或者使用自签名证书进行测试。以下是使用OpenSSL生成自签名证书的基本命令:

openssl genrsa -out privkey.pem 2048 openssl req -new -x509 -key privkey.pem -out cert.pem -days 365 这将生成一个私钥(privkey.pem)和一个自签名证书(cert.pem),有效期为365天。

步骤 2: 配置Nginx 接下来,你需要配置Nginx来接收HTTPS请求,并将它们转发到HTTP后端。以下是一个基本的Nginx配置示例:

基本的HTTP服务器配置

server { listen 80; server_name example.com; # 你的域名

location / {
    proxy_pass http://your_http_backend; # 你的HTTP后端地址
    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;
}

}

HTTPS服务器配置

server { listen 443 ssl; server_name example.com; # 你的域名

# SSL证书和密钥的路径
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/privkey.pem;

# 可选的SSL配置
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;

location / {
    # 转发到HTTP后端
    proxy_pass http://your_http_backend;
    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;
}

} 请确保将/path/to/cert.pem和/path/to/privkey.pem替换为你的证书和私钥的实际路径,以及将example.com替换为你的实际域名或服务器地址。

#  restart nginx
sudo service nginx restart

遇到的问题

  • fastapi 跨域请求
  • nginx https
  • axios http 强制转换为https
  • axios 异步

cloudflare 生成ssl证书

ssl -> origin server -> create

配置不同的ssl encryption mode

Rules ->