簡體   English   中英

如何將 Symfony 4.3 的默認最小 nginx 配置放在子位置?

[英]How to put default minimal nginx config of Symfony 4.3 in sub location?

如何把這個是 Symfony 4.3 https://symfony.com/doc/4.3/setup/web_server的 nginx 配置

配置:

server {
    server_name domain.tld www.domain.tld;
    root /var/www/project/public;

location / {
    try_files $uri /index.php$is_args$args;
}

location ~ ^/index\.php(/|$) {
    fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
    fastcgi_split_path_info ^(.+\.php)(/.*)$;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
    fastcgi_param DOCUMENT_ROOT $realpath_root;
    internal;
}

location ~ \.php$ {
    return 404;
}

error_log /var/log/nginx/project_error.log;
access_log /var/log/nginx/project_access.log;
}

需要放置位置:

location /api {
               }

我發現兩個帶有根或別名的變體。

有根:

server {
server_name domain.tld www.domain.tld;
root /var/www/project/public;

    location /api {
        index index.php;
        root /var/www/project/api/public;
        try_files $uri /api/index.php$is_args$args;

        location ~ ^/api(/index\.php(/|$)) {
            fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
            fastcgi_split_path_info ^(.+\.php)(/.*)$;
            include fastcgi_params;
            fastcgi_param SCRIPT_NAME     index.php;
            fastcgi_param DOCUMENT_URI    index.php;
            fastcgi_param SCRIPT_FILENAME $realpath_root$1;
            fastcgi_param DOCUMENT_ROOT   $realpath_root;
            internal;
                                            }

        location ~ \.php$ {
            return 404;
                           }
                   }

error_log /var/log/nginx/project_error.log;
access_log /var/log/nginx/project_access.log;
}

使用別名:

server {
server_name domain.tld www.domain.tld;
root /var/www/project/public;

    location /api {
        index index.php;
        alias /var/www/project/api/public;
        try_files $uri $uri/ /api/api/index.php$is_args$args;

        location ~ ^/api/index\.php(/|$) {
            fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
            fastcgi_split_path_info ^(.+\.php)(/.*)$;
            include fastcgi_params;
            fastcgi_param SCRIPT_NAME     index.php;
            fastcgi_param DOCUMENT_URI    index.php;
            fastcgi_param SCRIPT_FILENAME $request_filename;
            fastcgi_param DOCUMENT_ROOT   $realpath_root;
            internal;
                                          }

        location ~ \.php$ {
            return 404;
                           }
                   }


error_log /var/log/nginx/project_error.log;
access_log /var/log/nginx/project_access.log;
}

為了了解我必須如何使用

fastcgi_pass 127.0.0.1:9000;

#tcpdump -nAs 20000 -i lo tcp port 9000

暫無
暫無

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

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