我有一个网站,我希望除以 开头的 URL 路径的请求外,所有请求都使用 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;
...
}
}
答案1
为非 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;
}
}