有时候打开自己网站,但是某些资源确没有在网站项目中,可能位于其他网站(此时你的网站链接起到的作用就是一个代理了)。
那么有什么办法做到上述的这些情况呢。很简单-->nginx代理,个人感觉nginx做代理是非常强大的。开始之前建议由正则基础,开始步入正题吧
- nignx修改root映射实现服务器任意位置的找到资源,前提是资源和访问路径是同一台服务器:
比如说一张图片 1.png 在服务器的/usr/location/1.png,你的项目随意位置,但是当访问xxxx/image/1.png 可以访问到这张图片,那么完全可以这么操作
location /image{
root /usr/location/;#绝对路径
}
2.通过rewrite跳转实现访问重定向,这个不仅可以跳转本服务任意位置,同时可以作为一个中间代理,比如说你要访问https://{你的域名}/en/download.html 但是你想这么访问的结果是nginx的结果 (http://nginx.org/en/download.html)那么你可以秀一波完美的操作了,不过官方用语应该是nginx的permanent 301绝对跳转。
location /s {
rewirte ^/s/(.*)$ http://nginx.org/en/$1 break;
}
注:$1 的意思其实是en/
后边的那一坨
break和last可以看下https://blog.csdn.net/brainkick/article/details/7475770 很详细
4.其实rewrite也可以实现内部跳转,和root也很像
location /image {
rewrite ^/image/(.*)$ /usr/location/$1 last;
}
- alias别名映射,写法和root基本一样
网友评论