Welcome! Log In Create A New Profile

Advanced

Migrate Apache directives to Nginx

September 20, 2017 07:48PM
Question on SF:
https://serverfault.com/questions/874730/convert-apache-mod-proxy-p-to-nginx-equivalent

My PHP MVC platform CodeIgniter performs routing based on the REQUEST_URI.

In Apache, you cannot change the REQUEST_URI environment variable. So, in
Apache, I made use of the [P]proxy flag. Sending the rewritten URL using
mod_proxy took care of that and it just works. The browser does not
redirect and the information is returned.

How do I do the same in Nginx? Or is there a way to change the REQUEST_URI
without proxy?

The *APACHE DIRECTIVES* take a URL like:

https://www.example.com/_img/h_32/w_36/test.jpg

and converts it to

https://www.example.com/img/i/_img/h_32/w_36/test.jpg.

Then once rewritten, it sends the request using mod_proxy and RewriteCond
makes sure to not call RewriteRule again if the URL has /img/i in it. Thus
avoiding the loop of death.

*APACHE DIRECTIVES*

RewriteCond %{REQUEST_URI} (h|w|fm|trim|fit|pad|border|or|bg)_
RewriteCond %{REQUEST_URI} !^(.*)/img/i/
RewriteRule "(.*)\.(jpg|png)$" /index.php/img/i/$1.$2 [P]

*NGINX DIRECTIVES SO FAR*: You can see in *BLOCK 1* the regex to match and
a possible rewrite. Where do I go next?

root /var/www/vhosts/example.com/htdocs;
index index.php index.html;

# *BLOCK 1*
location ~* \/(h|w|fm|trim|fit|pad|border|or|bg)_.*\.(jpg|png)$ {
#rewrite "(.*)\.(jpg|png)$" index.php/img/i$1.$2; #doesn't change
the REQUEST_URI
#do I do proxy pass here?
#How do I avoid the regex matching again?
}

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

location ~ ^(.+\.php)(.*)$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param CI_ENV production; #CI environment constant
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx
Subject Author Posted

Migrate Apache directives to Nginx

usazelf September 20, 2017 07:48PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 193
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready