nginx如何配置代理转发

nginx如何配置代理转发

Nginx是个厉害的服务器,可以配置多个服务器,一个server就是一个服务器

server {
      listen       80;
      server_name  *.yourdomain.com;

   ....
}

代理转发是在server下面的location进行配置

server {
   // 服务器配置
   location  / {
   // ...... 代理配置
   }
}

常见的Nginx代理配置

upstream my_server {                                                         
    server 10.0.0.2:8080;                                                
    keepalive 2000;
}
server {
    listen       80;                                                         
    server_name  10.0.0.1;                                               
    client_max_body_size 1024M;

    location /my/ {
        proxy_pass http://my_server/;
        proxy_set_header Host $host:$server_port;
    }
}

通过该配置,访问nginx地址http://10.0.0.1:80/my的请求会被转发到my_server服务地址http://10.0.0.2:8080/

需要注意的是,如果按照如下配置:

upstream my_server {                                                         
    server 10.0.0.2:8080;                                                
    keepalive 2000;
}
server {
    listen       80;                                                         
    server_name  10.0.0.1;                                               
    client_max_body_size 1024M;

    location /my/ {
        proxy_pass http://my_server;
        proxy_set_header Host $host:$server_port;
    }
}

那么,访问nginx地址http://10.0.0.1:80/my的请求会被转发到my_server服务地址http://10.0.0.2:8080/my。这是因为proxy_pass参数中如果不包含url的路径,则会将location的pattern识别的路径作为绝对路径。

更多Nginx相关技术文章,请访问Nginx使用教程栏目进行学习!

以上就是nginx如何配置代理转发的详细内容,更多请关注其它相关文章!