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
最重要的是
静态文件配置中加
proxy_pass http://你的域名;
发表评论: