I wish to configure nginx with a reverse_proxy (proxy_pass
) that routes into my app in localhost:3000
and the location
/blog
it routes to wordpress.
The config file I have is:
server {
listen [::]:443 ssl ipv6only=on;
listen 443 ssl;
#begin ssl_certificates
.....
#end ssl_certificates
server_name example.com;
root /var/www/example.com; #WP files are in /var/www/example.com/blog
index index.php;
location /blog {
alias /var/www/example.com/blog; #the WP files are in /var/www/example.com/blog also tried /var/www/example.com
index index.php;
try_files $uri $uri/ /blog/index.php?$args;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # Adjust the version based on your PHP-FPM version
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
location ~ /\.ht {
deny all;
}
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;
}
}
server {
listen 80;
listen [::]:80 ipv6only=on;
server_name example.com;
location / {
proxy_pass http://localhost:3000;
}
}
When I go to path https://example.com/blog
it shows a 404.
Other configs I tried is moving the WP files to /var/www/example.com
, nevertheless I don't think this is the issue because is actually not redirecting to the static files.
I tried using two proxy_pass
and that actually works:
...
location / {
proxy_pass http://localhost:3000;
}
location /blog {
proxy_pass http://localhost:9000;
}
...
If there is not workaround, do you know any other CMS that might work like this?
The problem was that the permits in the folder wasn't the correct ones for the app it was reading. Therefore it couldn't find it.