为 Nginx 中的某些路径禁用 SSL

hek*_*ran 11 nginx

我有一个网站,我希望所有请求都使用 HTTPS 完成,但对路径以/foo/. 我如何在 Nginx 中配置它?

现在我使用 SSL 运行所有请求:

server {
    listen 443;

    ssl on;
    ssl_certificate /home/admin/ssl/ssl.crt;
    ssl_certificate_key /home/admin/ssl/ssl.key;

    server_name www.mydomain.com;

    location / {
        proxy_pass http://localhost:8000;
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

Dav*_*gac 15

为非 ssl 添加第二个服务器条目,端口 80,提供/foo/*其他所有内容并将其重定向到 HTTPS URL。

也许是这样的?:

server {
    listen      80;
    server_name www.example.com;

    location ~ ^/(foo|foo/.*)$ {
        proxy_pass http://localhost:8000;
        ... 
    }

    location / {
        rewrite  ^ https://$server_name$request_uri? permanent;
    }
}
Run Code Online (Sandbox Code Playgroud)