Ich benutze Nginx für eine Website, die auch APIs verfügbar macht.Konfigurieren Sie Nginx Traffic auf http oder https basierend auf URL zu leiten
Ich möchte ein SSL-Zertifikat auf der Website hinzuzufügen und:
- Direkt-Website-Traffic auf https (443)
- aber halten alle die API-Anrufe gehen auf http (80)
die alle API-Verkehr ist insofern einzigartig, als es eine URL mit api nach dem Namen der Website aufruft:
-
www.example.com/
- api/...
ich das bin der Hoffnung, mit einer Kombination von Nginx Server/Standort Blöcke durchgeführt werden. So etwas wie folgt aus:
# http
server {
listen 80;
server_name example.com www.example.com;
# direct all api traffic (www.example.com/api/) via http
location /api/ {
root /full_path_to_api_code # '/api/' location value will be appended
}
# redirect all non api traffic to https block
location/{
return 301 https://$server_name$request_uri;
}
}
# https
server {
listen 443 ssl;
server_name example.com www.example.com;
ssl_certificate www.example.com.crt;
ssl_certificate_key www.example.com.key;
...
}
ich bin der Hoffnung, ‚Standort/api /‘ Block fängt die alle api Anrufe und einfach lässt sie durch unverändert passieren, wie sie waren. Vielleicht gibt es einen besseren Weg, dies zu tun?
Ich würde mich freuen, wenn mir jemand sagen kann, ob das möglich ist und ob dies der richtige Weg ist?
Das ist für mich gut aussieht. –