The following server directives show how you can redirect an incoming request from nginx to an upstream server running on a different port. You can also rewrite the url before redirecting the request as shown in the second server directive below. In the below server directives, the server is listening on port 8082 and redirecting to other server (test-server) listening on port 8989
Redirecting a request to an upstream server
server {
listen 8082;
location ~ /(.*) {
proxy_pass http://test-server:8989;
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;
}
}
Rewrite url and redirect request to upstream server
server {
listen 8082;
location ~ /(.*) {
# e.g server url /session/login can be re written as
# /test/resource/session/login
rewrite ^/(.*)$ /test/resource/$1 break;
proxy_pass http://test-server:8989;
# the complete url will look like http://test-server:8989/test/resource/session/login
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;
}
}
Define an upstream server
You can also define an upstream and use it in proxy_pass -
Redirecting a request to an upstream server
server {
listen 8082;
location ~ /(.*) {
proxy_pass http://test-server:8989;
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;
}
}
Rewrite url and redirect request to upstream server
server {
listen 8082;
location ~ /(.*) {
# e.g server url /session/login can be re written as
# /test/resource/session/login
rewrite ^/(.*)$ /test/resource/$1 break;
proxy_pass http://test-server:8989;
# the complete url will look like http://test-server:8989/test/resource/session/login
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;
}
}
Define an upstream server
You can also define an upstream and use it in proxy_pass -
upstream test_server
{
server test-server:8989
}
Now you can use the upstream name in proxy pass -
proxy_pass test_server;
No comments:
Post a Comment