问题描述
1、现有网站http://ranjuan.cn的web目录位于linux服务的物理路径为/web/ranjuan/
2、现在想搭建一个纯静态网站,位于服务器的物理路径为/test/web/目录
3、在不增加新域名与开设新开放端口的前提下,想要使用http://ranjuan.cn/test地址跳转解析到/start/test/目录下!需要注意/start/test/目录权限问题
nginx配置方式(本例使用方式二解决问题!)
因代码排版问题,注意有些配置是一行,但是被截断/显示为两行了。如不确定请看代码左侧的所在行数进行判断!
server
{
………………
………………
#方式一 只能代理到网站根目录下的其他目录
#if ( $request_uri ~* ^(/test)){#通过判断uri实现页面跳转
# rewrite ^/test/(.*)$ /test2/$1 last;#相对目录test2,不符合本次实际需求
#}
#方式二 代理url指定目录,
location /test {
root /start/; #设置虚拟主机主目录相对路径,会去访问目录/start/test/
#注意目标目录权限,root目录不在nginx顶级root目录下
index index.html; #设置虚拟主机默认主页
# autoindex on; #开启目录浏览功能
###############如果代理目录后css、js、png等静态资源无法访问的话,请加上下面语句,将url中包含test目录 且后缀名是gif、jpg……结尾的文件进行目录映射 ####
location ~ ^/test/.*\.(gif|jpg|jpeg|png|bmp|swf|css|js|eot|svg|ttf|woff|woff2|properties|json)?$ {
root /start/;#虽然这里是/start/实际会转发到/start/test/目录
expires 30d;
}
############css、js等静态资源404 请加上上面语句######
}
#下面这个配置仅作个人备忘,请忽视
# location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|css|js|eot|svg|ttf|woff|woff2|properties|json)$ {
# root /web/ranjuan/;
# if (-f $request_filename) {
# expires 1d;
# break;
# }
# }
#下面的配置原本打算将代理目录做php解析,但是配置文件不正确,放弃了,请忽视
#location /test/ {
# alias /start/test/;#绝对目录,后面有斜杠,注意forbidden
# index index.html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
#fastcgi_param SCRIPT_FILENAME $document_root $fastcgi_script_name;
#include fastcgi_params;
# }
#方式三、只能代理为http://ranjuan.cn的web目录下的相对目录,对本例无效
#location /test {
# rewrite ^/test/(.*)$ /test2/$1 last;# www网站root目录下的相对目录
#}
………………
………………
}
其他
本例中的配置只能代理纯html或其他静态类文件!!!因为nginx本身是个html类web服务器,如果想要解析php就需要增加配置语句(能力有限目前没搞定)。
另外如果想要代理非静态网站/目录,建议还是使用nginx的反向代理功能,不管你最终想要实现什么效果,先把你的项目搭建成可以访问的web服务,比如访问http://www.ranjuan.cn:8080 就能访问你的新项目了,但是你想使用http://ranjuan.cn/javaweb来访问你的新项目,这时候反向代理是最好的选择,可以参考此文第5条:宝塔面板安装java web环境
基于互联网精神,在注明出处的前提下本站文章可自由转载!
本文链接:https://ranjuan.cn/nginx-proxy-redirect/