其实是很简单的设置,但由于不懂docker,走了许多弯路。

一、虚拟目录设置规则无效

我想将一些静态资源部署到测试服务器上,方便开发和演示。测试服务器是阿里云虚拟机,linux,上面装有有一个nginx,可以完成这个小凯丝。结果自认为对nginx已经有了一定了解,这种简单任务手到擒来,不料搞到鸡毛鸭血。配置好虚拟目录的映射后,系统死活不认,无法访问,自动跳到登录页面。摘录配置如下:

server {listen      80;server_name 192.168.0.248;location / {root /home/admin_ui/dist;index /mscodereact/index.html;try_files $uri $uri/ /mscodereact/index.html;}location /favicon.ico {root /home/admin_ui/dist;try_files $uri/ /mscodereact/favicon.ico;}#这就是我想添加的虚拟目录#请注意其路径与 “/”指向的路径并不相同location /javapubzy/ {index index.html;alias /home/beian/javapubzy/;try_files $uri $uri/ /javapubzy/index.html;}
}

在网上查找来,查找去,访问这个http://192.168.0.248/javapubzy,都是跳到了登录页面。究其原因,是因为系统路径指向无效,于是做了默认处理,采用了第一条设置规则:

 location / {root /home/admin_ui/dist;index /mscodereact/index.html;try_files $uri $uri/ /mscodereact/index.html;}

其中,try_files $uri $uri/ /mscodereact/index.html;,意思是,系统先看有没有$uri这个文件,没有则看有没有$uri这个文件夹(即$uri/,后面的斜杠代表文件夹)。如果没有,则跳到/mscodereact/index.html,这是一个应用的首页,需要登录。

二、规则无效的原因是路径无法访问

 #这就是我想添加的虚拟目录#请注意其路径与 “/”指向的路径并不相同location /javapubzy/ {index index.html;alias /home/beian/javapubzy/;try_files $uri $uri/ /javapubzy/index.html;}

经过反复测试,发现将文件夹移到根目录"/"所在的位置,即可正常访问,放到别的地方就不行。想起之前同事的提示,醒悟过来。我猜测,这个nginx是装在docker里的,安装的时候,只映射了一个特定的文件夹,只有将内容放在其中,才有可能识别。

改为

location /javapubzy/ {index index.html;alias /home/admin_ui/dist/javapubzy/;try_files $uri $uri/ /javapubzy/index.html;
}

其实这一步纯属多余。将文件夹javapubzy放置到指定的根目录后,无须做任何设置,即可访问。即使设置了,也不生效。如:

location /j/ {index index.html;alias /home/admin_ui/dist/javapubzy/;try_files $uri $uri/ /j/index.html;
}

在这里,想用j来代替javapubzy,反而无法访问,纯属画蛇添足。

由于我目前在docker里如何安装nginx并不了解,所以无法扯更多,可参考如下文章:
docker中nginx的默认路径位置和映射目录启动

三、虚拟目录设置规则解释

 location / {root /home/admin_ui/dist;index /mscodereact/index.html;try_files $uri $uri/ /mscodereact/index.html;}location /favicon.ico {root /home/admin_ui/dist;try_files $uri/ /mscodereact/favicon.ico;}location /javapubzy/ {index index.html;alias /home/admin_ui/dist/javapubzy/;try_files $uri $uri/ /javapubzy/index.html;}

这3个规则放在一起,结合起来看利于比较。可以发现映射路径有 root 和 alias 两种方式。

1、root与alias的区别
1)root指向虚拟目录所在的父文件夹,而alias直接指向虚拟目录所在文件夹

2)同一个虚拟路径,如果既设置了root方式,又设置了alias方式,则以alias方式为准

2、默认页面

index index.html;

不要用下面这个,这个是列出目录下的文件,不安全。

autoindex on;

3、try_files

try_files $uri $uri/ /javapubzy/index.html;

系统先看有没有$uri这个文件,没有则看有没有$uri这个文件夹(即$uri/,后面的斜杠代表文件夹)。如果没有,则跳到/javapubzy/index.html

四、其他一些干扰问题

1、nginx里面,http和https是分开设置的。因此映射虚拟目录的话,要分别设置

2、设置完nginx后,利用浏览器测试结果,最好清一下浏览器缓存,否则很可能看不到效果,导致以为设置无效,让人迷惑

运行在docker里的nginx添加虚拟目录并设置默认页面相关推荐

  1. linux ftp添加虚拟目录,serv-u的虚拟目录设置方法

    摘要 我上网查了好多资料,研究好久,才得出的结论,写这篇博客一来自己以后忘了可以来查看,二来可以帮助那些不会的童鞋.我的serv-U的版本:v10.2 serv-u的虚拟目录设置方法 一.用serv- ...

  2. Apache 创建虚拟主机目录和设置默认访问页面

    Apache 创建虚拟主机目录和设置默认访问页面 虚拟主机 (Virtual Host) 是在同一台机器搭建属于不同域名或者基于不同 IP 的多个网站服务的技术. 可以为运行在同一物理机器上的各个网站 ...

  3. TOMCAT6.0配置(虚拟目录的设置+多域名绑定)

    TOMCAT6.0配置(虚拟目录的设置+多域名绑定) Tomcat6.0配置(虚拟目录的设置+多域名绑定) Tomcat6.0配置(虚拟目录的设置+多域名绑定) 优点:tomcat6.0可以自动更新类 ...

  4. 搭建FTP服务器(二):虚拟目录的设置

    今天晚上,又把搭建好的FTP服务器玩了玩,发现每个用户只能访问他们自己的根目录.于是就想着,怎么让用户能访问更多的目录呢?? 自己在网上搜了搜,还是找到了一些头绪,不过就是没有实践一下.其中这个写得很 ...

  5. 运行在Docker里的SpringBoot应用,如何查看记录在文件系统的日志

    我有一个SpringBoot应用,将其打包在一个Docker镜像里. DockerFile如下: FROM openjdk:8-jdk-alpine VOLUME /tmp VOLUME /log A ...

  6. nginx下虚拟目录配置301域名重定向

    方法一. 例: 省略www.chtml.cn虚拟主机server配置 server { listen 80; server_name chtml.cn www.chtml.cn; return 301 ...

  7. [转]命令行在IIS添加虚拟目录

    来自:http://www.jb51.net/softjc/29702.html Mkwebdir -c LocalHost -w "Default Web Site" –v Co ...

  8. 蜻蜓resin服务器虚拟目录的设置

    首先,别急着打开服务器先,接住打开resin主目录下的conf文件夹的resin.conf文件,老规矩,备份先,mv resin.conf resin.conf.bak 然后vi resin.conf ...

  9. Tomcat虚拟目录

    对于Tomcat的虚拟目录的设置,一搜索一大推,这里我只是为了个人记录,再写下. Tomcat的目录在:c:\tomcat 6.0\ @.Tomcat中虚拟目录的设置 默认的,Tomcat的主目录是C ...

最新文章

  1. SAP PM入门系列21 - IE07 Equipment List (Multilevel)
  2. 台风怎么看内存颗粒_生态板、密度板、颗粒板各有好处,看你怎么用了!
  3. [bzoj1614]: [Usaco2007 Jan]Telephone Lines架设电话线
  4. 关于Integer类中parseInt()和valueOf()方法的区别以及int和String类性的转换.以及String类valueOf()方法...
  5. FinanceJson
  6. C++为什么要内存对齐
  7. linux下jboss分析helloword,JBoss 中运行servlet 的helloworld程序(转)
  8. 三十、PHP框架Laravel学习笔记——模型的预加载
  9. 金蝶kis云触发器解决审核和反审核的问题
  10. 马化腾:整天在拍拍网上买东西,找感觉
  11. 会翻页GridView-1
  12. Windows Server 2012 R2 安装补丁
  13. google退出中国声明原文【翻译版】
  14. 智慧城市的背后是大数据的深度挖掘和利用
  15. 如何获取dgv中所显示的全部数据
  16. php__file__用法,PHP 的常量__FILE__的用法图解
  17. android模拟器dns,网络异常,显示无网络(修改DNS方法)
  18. java图片合成视频_使用JAVACV把图片合成视频
  19. 【make、makefile】
  20. Web3策展生态解读:谁是互联网文明的策展人?

热门文章

  1. Mathtype 7.4.4.516软件研究
  2. android wear gear2,开发大神实现三星Gear 2上启动Android Wear
  3. 11月02日解题报告
  4. 《带团队的第一年:从「会工作」到「会管理」》笔记
  5. webstorm的live templates简单说明
  6. linux下载sra数据库,NCBI-SRA数据下载的3种方法
  7. 男生都是如何折磨自己的女朋友的?
  8. Python+Appium实现删除微信“僵尸好友”
  9. 计算机运行的速度,如何让电脑运行更快(只需九招提升你的计算机运行速度)...
  10. 如何在图片上添加文本信息