Nginx配置location中root指令的使用
一次同事在使用Nginx的时候,想在同一个域名后跟一个名字指向一个临时的活动站点。例如:http://www.xxx.com 这个是主站的地址,他想要的是:http://www.xxx.com/activity。其实大家很快就明白可以直接在网站的根目录下新建一个doc目录,然后将对应的文件放在下面不就可以了吗。确实这样是可行,但是他们首先的一个坑就是将活动网站的地址放在了另外的一个目录下。其次就是静态文件的路径是通过绝对路径来实现的。
首先解决网站目录不一致的问题,如果我们主站的目录在:
/home/www/site/home
活动站点的目录在:
/home/www/site/activity
一、root指令
现在要让nginx里进行配置,都会通过location指令中指定root来解决。确实,想法是对的,但是这里面一定要注意下面的问题,如果我们使用root来进行配置,如:
#错误配置
location /activity {
root /home/www/site/activity;
index index.html index.htm;
}
对不起,这样的配置将去寻找的网站的目录是:/home/www/site/activity/activity,所以看到这里大家肯定明白了,我们正确的配置方式是:
#正确配置
location /activity {
root /home/www/site;
index index.html index.htm;
}
这样的话,那么我们访问的目录就是/home/www/site/activity;但是如果我们要使用全路径的话有没有解决方式的,答案是肯定的,下面我们将介绍另一种方式。
二、alias指令
这个指定是干啥的,这个就是目录的别名,它就是一个全路径。先说配置:
location /activity { alias /home/www/site/activity/; index index.html index.htm; }
这样的话就可以直接访问/home/www/site/activity/下的文件了,这里一定要注意activity后面一定有个斜线,如果没有就会出现找不到文件的情况。
通过上面两种方式可以满足他们的要求了。但是他们还有一个问题就是在引用静态资源的时候使用的是绝对路径/,所以尽管上面的配置完成后,静态资源还是访问不了。所以作为前端开发的同学一定要记住,尽量使用相对路径来获取静态资源,这样可以为自己减少很多不必要的麻烦。这里提供一个vue打包静态资源参考:vue打包静态资源路径不正确的解决办法
到这里为止,我们的配置基本就说完了。下面总结下:
- root其实是网站的根目录,所以在访问的时候是从根目录开始查找的;
- alias是目录的别名,那么这个就可以是一个目录的全路径。
在使用Docker时,经常会犯一个错,误以为latest镜像会自己更像到最小版本,其实这样理解是有问题的,latest就是一个标签,没有自动更新到最新版本的功能,本文就是对latest标签进行介绍。
某些时候在寻找某个接口反映较慢的排除方法,除了从网络和服务器的硬件上面排除外,可能还需要我们通过PHP-FPM来排查问题。所以本文我们将说明如何通过PHP-FPM来查询慢日志,帮我们来排查相关问题。
迪米特法则(Law of Demeter,LoD)又叫作最少知识原则(Least Knowledge Principle,LKP),产生于 1987 年美国东北大学(Northeastern University)的一个名为迪米特(Demeter)的研究项目,由伊恩·荷兰(Ian Holland)提出,被 UML 创始者之一的布奇(Booch)普及,后来又因为在经典著作《程序员修炼之道》(The Pragmatic Programmer)提及而广为人知。
在于前端攻城狮的兄弟们开发接口的时候,总会遇到一些奇怪的问题。比如IOS对某个字段要求要整数,如果PHP这边返回过去是字符串那么APP就会崩溃。虽然他们可以捕获异常,但是有些时候我们更想后端的攻城狮能否提供一种统一的数据类型,前端想怎么转换就是他们自己的事情,本文我们将给大家带来这方面的处理。
you-get是一个基于Python的开源命令行工具,主要用于下载来自多个视频网站的视频、音频和图片资源。它支持YouTube、Bilibili、Vimeo等平台,可通过简单命令快速获取下载链接并支持自定义保存路径和格式。
快速生成表格
Electron页面跳转、浏览器打开链接和打开新窗口
在使用Git的过程中,不想每次都输入用户名和密码去拉取代码,所以就需要保存这些信息,那么既然有保存了,就必须有清除功能。
在Mac电脑中,如何对Git的用户名和密码进行修改呢?起初不懂Mac,所以整了很久,本文将记录如何对这个进行操作,以便后期使用。
Docker编译镜像出现:fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.12/main: temporary error (try again later)
WARNING: Ignoring APKINDEX.2c4ac24e.tar.gz: No such file or directory问题