nginx静态文件(css,js等)反向代理

nginx反向代理很简单:

如:打开 http://www.aa.com/demo 访问 http://www.xxx.cn

#www.aa.com服务器nginx配置demo反向代理
location /demo/ {
       proxy_pass http://www.xxx.cn/;
}
# http://www.aa.com/demo/user =>http://www.xxx.cn/user 

就上面一段简单的代码,就完成了
注:http://www.xxx.cn后面必须要有/

# 不加/
location /demo/ {
       proxy_pass http://www.xxx.cn;
}
# http://www.aa.com/demo/user =>http://www.xxx.cn/demo/user 

如果只是代理api,上面的已经满足了
如果要代理静态文件(如css,js等)可能就报404静态文件

http://www.aa.com/demo/static/index.js  //404
http://www.aa.com/demo/static/index.css //404

静态部分需要单独代理:

location ~ /demo/.*\.(js|css)$ { 
     proxy_pass http://www.xxx.cn; 
}

# http://www.aa.com/demo/static/index.js => http://www.xxx.cn/demo/static/index.js

# http://www.aa.com/demo/static/index.css => http://www.xxx.cn/demo/static/index.css

以上代码就差一下,如果静态放在demo/static目录,那就不用改了,只是没有如果,如果静态文件都放在static目录,使用rewrite 替换即可

location ~ /static/.*\.(js|css)$ { 
     proxy_pass http://www.xxx.cn; 
     rewrite ^/demo/static/(.*)$ /static/$1 last;
}

# http://www.aa.com/demo/static/index.js => http://www.xxx.cn/static/index.js

# http://www.aa.com/demo/static/index.css => http://www.xxx.cn/static/index.css

完整代码:

#www.aa.com服务器nginx配置demo反向代理
location /demo/ {
       proxy_pass http://www.xxx.cn/;
}
# http://www.aa.com/demo/user =>http://www.xxx.cn/user 

#静态配置
location ~ /static/.*\.(js|css)$ { 
     proxy_pass http://www.xxx.cn; 
     rewrite ^/demo/static/(.*)$ /static/$1 last;
}

# http://www.aa.com/demo/static/index.js => http://www.xxx.cn/static/index.js

# http://www.aa.com/demo/static/index.css => http://www.xxx.cn/static/index.css


发表评论

电子邮件地址不会被公开。 必填项已用*标注