nginx配置两层代理请求

2,924 阅读1分钟

server {
        
        listen       8055;
        location ~* /ai {
            proxy_pass http://10.221.2.29:443;     #设定代理服务器的协议和地址 
        }
        #对静态资源css、js和图片等做特殊的配置
        location ~ .*\.(js|css|gif|jpg|jpeg|png|bmp|swf)?$ {
            proxy_pass http://10.221.2.29:443;     #设定代理服务器的协议和地址 
        }
    }

解释:代理访问端口为 8055 ,路径为 ai 的API,比如接口为 http://10.221.1.135:8055/ai 代理出去的就为 http://10.221.2.29:443/ai,其中需要对静态资源css、js和图片等做特殊的配置。

server {
       resolver 114.114.114.114;       #指定DNS服务器IP地址 
       listen 443;
       location ~* /ai {
            rewrite  ^/ai/(.*?)$ /$1 last;
            include  uwsgi_params;
            proxy_pass https://ai-inner-test.kingdomai.com;   #设定代理服务器的协议和地址 
       }
       #对静态资源css、js和图片等做特殊的配置
       location ~ .*\.(js|css|gif|jpg|jpeg|png|bmp|swf)?$ {
            proxy_pass https://ai-inner-test.kingdomai.com;   #设定代理服务器的协议和地址 
       }
    }

解释:代理访问端口为443,路径为 ai 的API,比如接口为 http://10.221.2.29:443/ai 代理出去的就为 https://ai-inner-test.kingdomai.com,和第一层相比,第二层用了443端口,因为代理到的服务器为https,并且使用了 rewrite 重写代理的路径,删除ai,第二次也需要对静态资源css、js和图片等做特殊的配置。

注意:由于前端对接口加了 ai 字段,而静态资源没有在请求的链接中加入 ai 字段,静态资源请求链接进不了端口号为 8055 路径 ai 的配置,所以刚开始访问 http://10.221.1.135:8055/ai 出现静态资源报 404 错误,所以在第一层和第二层的nginx配置中加入对静态资源的特殊配置。