簡體   English   中英

如何為 angular 和 django 設置 Nginx 服務器

[英]How to setup Nginx server for angular and django

我正在嘗試將 Web 應用程序部署到我的服務器。 我已將 html 文件放在一個文件夾中,並且我有一台 django 服務器在同一台服務器上運行。 我正在使用 nginx 為后端設置反向代理,但由於某種原因,我無法路由到后端 url。

這是我的nginx配置:

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name _;
    return 301 https://example.com$request_uri;
}
server {
        listen [::]:443 ssl ipv6only=on;
        listen 443 ssl;
        server_name example.com example.com;

    root /var/www/html/;
    index index.html;

        # Let's Encrypt parameters
        ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
        include /etc/letsencrypt/options-ssl-nginx.conf;
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

    location / {
        try_files $uri $uri/ = index.html;
    }
        location /api {
          proxy_pass         http://unix:/run/gunicorn.sock;
          proxy_redirect     off;

          proxy_set_header   Host              $http_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 https;
        }
}

在第一個塊中..我將回退設置為 index.html 因為它是一個有角度的應用程序。 角度應用程序運行良好。

但是我無法訪問反向代理服務器的路由,每當我使用/api/something訪問路由時,它都會帶我回到 angular 應用程序,即 index.html

很簡單,我不得不像這樣修改路徑塊

location ~^/(admin|api) {
    proxy_pass http://unix:/run/gunicorn.sock;
    proxy_redirect off;

    proxy_set_header   Host              $http_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 https;
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM