Hey all - I am having trouble migrating from my Apache install the is perfroming the reverse proxy function for our SAP system to the newly installed nginx 1.5.4 (running on Windows 2012). I have been playing around for a couple days and have come close to getting this to work, but I am just missing something (or lots of somethings). I also believe one of my changes to make it work may be making it worse, but we will see. If someone can look at the old code and the new code and give me some pointers, I would appreciate it.
Old code:
<IfModule mod_rewrite.c>
RewriteEngine On
# RewriteCond %{REQUEST_METHOD} ^TRACE
# RewriteRule .* - [F]
RewriteLog "C:\Apache2.2\logs\supply.mydomain.com_log"
RewriteLogLevel 1
ProxyRequests Off
ProxyPreserveHost On
# RewriteCond %{HTTP_HOST} ^.*?proxy1.*
RewriteCond %(HTTP_HOST) !^supply\.mydomain\.com$ [NC]
RewriteRule ^/(sap.*) http://prd-srm.mydomain.com:8000/$1 [P,L]
RewriteCond %(HTTP_HOST) !^supply\.mydomain\.com$ [NC]
RewriteRule ^/irj/(.*) http://prd-ep.mydomain.com:50000/irj/$1?%{QUERY_STRING} [P,L]
RewriteCond %(HTTP_HOST) !^supply\.mydomain\.com$ [NC]
RewriteRule ^/logon/(.*) http://prd-ep.mydomain.com:50000/logon/$1?%{QUERY_STRING} [P,L]
RewriteCond %(HTTP_HOST) !^supply\.mydomain\.com$ [NC]
RewriteRule ^/webdynpro/(.*) http://prd-ep.mydomain.com:5000/webdynpro/$1?%{QUERY_STRING} [P,L]
RewriteCond %(HTTP_HOST) !^supply\.mydomain\.com$ [NC]
RedirectMatch 301 ^/$ https://supply.mydomain.com:443/irj/portal
RewriteCond %(HTTP_HOST) !^supply\.mydomain\.com$ [NC]
RedirectMatch 302 ^/irj$ https://supply.mydomain.com:443/irj/portal
</IfModule>
<IfModule mod_alias.c>
</IfModule>
<IfModule mod_proxy.c>
# <Proxy http://supply.mydomain.com/irj/*>
# Order Deny,Allow
# Allow from all
# </Proxy>
<Proxy http://supply.mydomain.com/irj/*>
ProxyPass http://prd-ep.mydomain.com:50000/irj
ProxyPassReverse http://prd-ep.mydomain.com:50000/irj
</Proxy>
<Proxy http://supply.mydomain.com/logon/*>
ProxyPass http://prd-ep.mydomain.com:50000/logon
ProxyPassReverse http://prd-ep.mydomain.com:50000/logon
</Proxy>
<Proxy http://supply.mydomain.com/webdynpro/*>
ProxyPass http://prd-ep.mydomain.com:50000/webdynpro
ProxyPassReverse http://prd-ep.mydomain.com:50000/webdynpro
</Proxy>
</IfModule>
LogLevel warn
New code (nginx):
server {
listen 80;
server_name supply.mydomain.com;
location /{
return 301 http://supply.mydomain.com/irj/portal;
}
location /irj {
proxy_pass http://prd-ep.mydomain.com:50000/irj;
}
location /sap {
proxy_pass http://prd-srm.mydomain.com:8000;
}
location /webdynpro {
proxy_pass http://prd-ep.mydomain.com:5000/webdynpro;
}
}
Thanks much!
Cheers
David Graham