如何使用根目录中的 PHP 应用程序为子目录中的 Nodejs 应用程序提供服务?

如何使用根目录中的 PHP 应用程序为子目录中的 Nodejs 应用程序提供服务?

我在根目录中运行 php,并想在子目录中运行使用 nodejs 构建的微服务。我做了一些配置,但 css/js/images 显示 404 未找到。在 nginx 配置下方。

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    server_name    www.test.com;
    return         301 https://$server_name$request_uri;

    root /var/www/html/app/webroot;

    index index.php index.html index.htm index.nginx-debian.html;


    location / {
        try_files $uri $uri/ /index.php?$args;
    }
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_param SCRIPT_FILENAME $request_filename;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
    }

}

server {

    listen  443 ssl http2;
    listen  [::]:443 ssl http2;
    ssl_certificate /etc/nginx/ssl/test_chain.crt;
    ssl_certificate_key /etc/nginx/ssl/www.test.com.key;

    root /var/www/html/app/webroot;

    # Add index.php to the list if you are using PHP
    index index.php index.html;

    include snippets/phpmyadmin.conf;

    server_name www.test.com;



    # . files
    location ~ /\.(?!well-known) {
        deny all;
    }

    location / {

        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_param SCRIPT_FILENAME $request_filename;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
        fastcgi_buffers               8 16k;
        fastcgi_buffer_size           32k;
    }

    #NODEJS SERVER BLOCK
    location /public {
        root /var/www/html/newcars/public/;
    }

    location /newcars {
        rewrite ^/newcars/(.*)$ /$1 break;
        proxy_pass http://127.0.0.1:3000;

    }
     #END of NODEJS SERVER BLOCK

}

    location ^~ /estore {
        root /var/www/html;
        index index.php index.html index.htm;
        try_files $uri $uri/ @opencart;
        location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
            fastcgi_intercept_errors on;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_buffers               8 16k;
            fastcgi_buffer_size           32k;
            fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
        }

        location ~* (\.(tpl|ini))$
            { deny all; }
    }

    location @opencart {
        rewrite ^/(.+)$ /estore/index.php?_route_=$1 last;
    }

    location = /estore/sitemap.xml {
        rewrite ^(.*)$ /estore/index.php?route=extension/feed/google_sitemap break;
    }

    location = /estore/googlebase.xml {
        rewrite ^(.*)$ /estore/index.php?route=extension/feed/google_base break;
    }

    location /estore/system {
        rewrite ^/estore/system/download/(.*) /estore/index.php?route=error/not_found break;
    }

    location /estore/video {
        rewrite ^/estore/video/courses/(.*) /estore/index.php?route=video/courses break;
    }

    location /estore/courses {
        rewrite ^/estore/courses-lists(.*) /estore/index.php?route=course/courseslist break;
    }

    # favicon.ico
    location = /favicon.ico {
        log_not_found off;
        access_log    off;
    }

    # robots.txt
    location = /robots.txt {
        log_not_found off;
        access_log    off;
    }

    # assets, media
    location ~* \.(?:css(\.map)?|js(\.map)?|jpe?g|png|gif|ico|cur|heic|webp|tiff?|mp3|m4a|aac|ogg|midi?|wav|mp4|mov|webm|mpe?g|avi|ogv|flv|wmv)$ {
        expires    7d;
        access_log off;
    }

    # svg, fonts
    location ~* \.(?:svgz?|ttf|ttc|otf|eot|woff2?)$ {
        add_header Access-Control-Allow-Origin "*";
        expires    7d;
        access_log off;
    }


}

相关内容