如何为api和前端配置nginx

如何为api和前端配置nginx,nginx,Nginx,请告诉我如何配置nginx,以便它提供文件服务 /var/www/public/frontend/index.html 对于所有请求,除了 /api/ 对于api,应给出 /var/www/public/index.php 试用 server { listen 80; server_name localhost; root /var/www/public; location /api/ { try_files $uri $uri/ /index.

请告诉我如何配置nginx,以便它提供文件服务

/var/www/public/frontend/index.html

对于所有请求,除了

/api/

对于api,应给出

/var/www/public/index.php

试用

server {
    listen 80;
    server_name localhost;
    root /var/www/public;

    location /api/ {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass php:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_buffer_size 128k;
        fastcgi_buffers 4 256k;
        fastcgi_busy_buffers_size 256k;
    }
}

server {
    listen 80;
    server_name localhost;
    root /var/www/public/frontend;

    location / {
        try_files $uri $uri/ /index.html?$query_string;
    }
}


但它不起作用。不是一个就是另一个。我知道创建子域是可能的,但目前我需要不使用它,第一个子域肯定不起作用,在这种情况下,您应该只使用一个
服务器
块。对于第二个,你也可以

位置/{
try_files/frontend$uri/frontend$uri//frontend/index.html?$query_string;
}

位置/{
root/var/www/public/frontend;
尝试\u文件$uri$uri//index.html?$query\u字符串;
}
server {
    listen 80;
    server_name localhost;
    root /var/www/public;

    location /api/ {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location / {
        try_files $uri $uri/ /frontend/index.html?$query_string;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass php:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_buffer_size 128k;
        fastcgi_buffers 4 256k;
        fastcgi_busy_buffers_size 256k;
    }
}