Hi guys,
I have some special requests that I want to redirect to another Gem. What I did in seaside is to implement #updateUrl: and add some parameter for those cases I want to send it to another Gem.
Now, I don't know how to adapt nginx for such a thing. I am using FastCGI. So I need to check if such argument is present in the URL and if true, send it to another upstream. If not, use the normal upstream.
I have explained my problem here: http://serverfault.com/questions/561993/nginx-choose-upstream-depending-on-args
but I didn't have any working answer. Does any of you have an idea how could I do that? Thanks in advance, Mariano http://marianopeck.wordpress.com _______________________________________________ Glass mailing list [hidden email] http://lists.gemtalksystems.com/mailman/listinfo/glass |
From: "Mariano Martinez Peck" <[hidden email]>Are you having trouble finding the parameter because you are using FastCGI? Or is the trouble purely an nginx question?
_______________________________________________ Glass mailing list [hidden email] http://lists.gemtalksystems.com/mailman/listinfo/glass |
On Wed, Dec 18, 2013 at 2:48 PM, Dale K. Henrichs <[hidden email]> wrote:
I guess the later. My usecase is this: I have some module inside the app which have some reports which may take several seconds, even some minutes. I know I could make them async, I know I have serviceVM, etc. But for the moment I want to keep it simple. So all those request from those modules, I want a special gem listening to them. Why? because I don't want to lock the VM for many time and because I want a different gem conf file (assignee more memory, etc).
So the thing is how can I make the if in nginx and send the request to the appropriate upstream of gems.
Mariano http://marianopeck.wordpress.com _______________________________________________ Glass mailing list [hidden email] http://lists.gemtalksystems.com/mailman/listinfo/glass |
On Wed, Dec 18, 2013 at 3:02 PM, Richard Sargent <[hidden email]> wrote:
yes, I can. But that is an implementation detail, so I don't want to show it that much in the URL. At least with an argument at the end it is less visible. Also, if I put it as part of the path, users may think that the app is restful. So he will try to access http://mydomain.com/slowrequests/whatever in the future, and that of course will not work unless I spend some effort making seaside restful.
Yes, at least with this it is easy to do with the webserver :)
Mariano http://marianopeck.wordpress.com _______________________________________________ Glass mailing list [hidden email] http://lists.gemtalksystems.com/mailman/listinfo/glass |
In reply to this post by Mariano Martinez Peck
I answered the folowing on the website:
@hellvinz is right. I can't comment so I'm making another answer. location / { if($myArg = "otherPool") { rewrite ^/(.*)$ /otherUpstream/$1 last; } try_files $uri pool1; } location /otherUpstream { proxy_pass http://@pool2; } I think you'll have to change $myArg to the name of the query parameter you're testing for and otherPool to whatever you set it to. Plus the rewrite is untested, so I may have that wrong too but you get the idea.
|
Thanks Paul, that works perfectly. On Wed, Dec 18, 2013 at 3:40 PM, Paul DeBruicker <[hidden email]> wrote: I answered the folowing on the website: Mariano http://marianopeck.wordpress.com _______________________________________________ Glass mailing list [hidden email] http://lists.gemtalksystems.com/mailman/listinfo/glass |
Free forum by Nabble | Edit this page |