Nginx configuration problem when splitting across front & backends, when using php ?
jimssupp at rushpost.com
jimssupp at rushpost.com
Mon Jan 4 00:18:07 UTC 2016
I installed an Nginx server this weekend.
I got the Symfony PHP framework, and a test app, running on it, using php-fpm, and a simple all-in-one Nginx config.
I'm trying to figure out splitting front- and back-ends using Nginx proxy.
I set up a FrontEnd Nginx config
server {
server_name test.lan;
listen 10.0.0.1:443 ssl http2;
root /dev/null;
access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log info;
autoindex off;
rewrite_log off;
ssl on;
ssl_verify_client off;
ssl_certificate "ssl/test.crt";
ssl_trusted_certificate "ssl/test.crt";
ssl_certificate_key "ssl/test.key";
include includes/ssl.conf;
location / {
proxy_pass http://127.0.0.1:10000;
}
}
and the Backend proxy listener for it,
server {
server_name test.lan;
listen 127.0.0.1:10000 default;
root /srv/www/test/symfony/web/;
access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log info;
ssl off;
gzip off;
rewrite_log on;
location / {
try_files $uri /app.php$is_args$args;
fastcgi_intercept_errors on;
}
location ~ ^/(app_dev|config)\.php(/|$) {
fastcgi_pass http://127.0.0.1:9000;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
}
location ~ ^/app\.php(/|$) {
fastcgi_pass http://127.0.0.1:9000;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
internal;
}
}
When I start Nginx I get no errors.
When I visit
https://test.lan/
I see
Welcome to Symfony 3.0.1
Your application is ready to start working on it at: /srv/www/test/symfony/
So that's the same as with the all-in-one Nginx config.
But, with this split config I'm trying out, when I visit
https://test.lan/app.php
I get
404 Not Found
And when I visit
https://test.lan/app_dev.php
I get
File access denied. cref: app_dev.php for more info.
Since I got this working right in my all-in-one config, but not in my split-config, I guess the problem's in my config and not with Symfony or php-fpm.
How come I can get "/" working but not either "/app.php" or "/app_dev.php"?
More information about the nginx
mailing list