nginx 反向代理

一、反向代理

    nginx反向代理的指令不须要新增额外的模块,默认自带proxy_pass指令,只须要修改配置文件就能够实现反向代理。php

    配置前的准备工做,后端跑项目的ip和端口,也就是说能够经过http://ip:port能访问到你的网站。html

二、nginx配置

upstream test  {
    server ip:port; #部署项目的服&务器ip和端口
}
 

server {
    listen 80;
    server_name  www.quancha.cn;
 
    access_log  logs/quancha.access.log  main;
    error_log  logs/quancha.error.log;
    root   html;
    index  index.html index.htm index.php;
 
   
    location / {
        proxy_pass  http://test;
 
        #Proxy Settings
        proxy_redirect     off;
        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_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
        proxy_max_temp_file_size 0;
        proxy_connect_timeout      90;
        proxy_send_timeout         90;
        proxy_read_timeout         90;
        proxy_buffer_size          4k;
        proxy_buffers              4 32k;
        proxy_busy_buffers_size    64k;
        proxy_temp_file_write_size 64k;
   }
}

三、部署两个项目配置

upstream test1 {  
    server ip1:port;#部署项目的服&务器ip和端口  
}  
upstream test2 {  
    server ip2:port;#部署项目的服&务器ip和端口 
}  
server {  
    listen       80;  

    #access_log  logs/host.access.log  main;  

    location /test1 {  
        proxy_pass   http://test1;  
        index  index.html index.htm;  
    }       
}  
server {  
    listen       80;  

    #access_log  logs/host.access.log  main;  

    location /test2 {  
        proxy_pass   http://test2;  
        index  index.html index.htm;  
    }          
}

四、nginx 之 proxy_pass详解

    在nginx中配置proxy_pass代理转发时,若是在proxy_pass后面的url加/,表示绝对根路径;若是没有/,表示相对路径,把匹配的路径部分也给代理走。nginx

    假设下面四种状况分别用 http://192.168.1.1/proxy/test.html 进行访问。后端

4.1 去掉前缀

location /proxy/ {
    proxy_pass http://192.168.1.1/;
}

 访问URL:http://192.168.1.1/test.html网站

4.2 保留前缀

location /proxy/ {
    proxy_pass http://192.168.1.1;
}

 访问URL:http://192.168.1.1/proxy/test.htmlurl

4.3 替换为test前缀

location /proxy/ {
    proxy_pass http://192.168.1.1/test/;
}

代理到URL:http://192.168.1.1/teset/test.htmlspa

4.4 加入test字符串

location /proxy/ {
    proxy_pass http://192.168.1.1/test;
}

代理到URL:http://192.168.1.1/testtest.html代理

相关文章
相关标签/搜索