S
S
Sergey Rozhkov2017-03-30 07:46:07
Nginx
Sergey Rozhkov, 2017-03-30 07:46:07

Two projects on the same domain, how to set up nginx?

I have a project with 2 folders

backend - symfony for api

front end-angular

By default, everything should go to index.html, but here are the queries
mydomain.by/api/*****
should already go to the backend.
I poked around for a long time, threw in such a seemingly even working config for nginx
server {
    listen 80;
    listen [::]:80;

    server_name mydomain.by;

    location / {
        root /var/www/mydomain/frontend/dist;
        index index.html;
        rewrite ^(/)/$ $1 permanent;
        try_files $uri /index.html$is_args$args;
    }

    location ~ ^/(api|ping$) {
        root /var/www/mydomain/backend/web;
        # try to serve file directly, fallback to app.php
        try_files $uri /app.php$is_args$args;
    }

    location ~ ^/app\.php(/|$) {
        root /var/www/mydomain/backend/web;
        fastcgi_pass unix:/run/php/php7.1-fpm.sock;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;
        # When you are using symlinks to link the document root to the
        # current version of your application, you should pass the real
        # application path instead of the path to the symlink to PHP FPM.
        # Otherwise, PHP's OPcache may not properly detect changes to
        # your PHP files (see https://github.com/zendtech/ZendOptimizerPlus/issues/126
        # for more information).
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        fastcgi_param DOCUMENT_ROOT $realpath_root;
        # Prevents URIs that include the front controller. This will 404:
        # http://domain.tld/app.php/some-path
        # Remove the internal directive to allow URIs like this
        internal;
    }

    # return 404 for all other php files not matching the front controller
    # this prevents access to other php files you don't want to be accessible.
    location ~ \.php$ {
      return 404;
    }
}

Does anyone have any ideas on how to do this better?

Answer the question

In order to leave comments, you need to log in

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question