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是目录的别名,那么这个就可以是一个目录的全路径。
Golang实现php的两个函数password_hash和password_verify
对于小于2TB的磁盘可以使用fdisk和parted命令进行分区,一般采用fdisk命令。但是对于大于2TB的磁盘只能使用parted分区,且需要将磁盘转换为GPT格式。
CFSSL是CloudFlare开源的一款PKI/TLS工具。 CFSSL 包含一个命令行工具 和一个用于 签名,验证并且捆绑TLS证书的 HTTP API 服务。 使用Go语言编写。
http_image_filter_module是nginx提供的集成图片处理模块,支持nginx-0.7.54以后的版本,在网站访问量不是很高磁盘有限不想生成多余的图片文件的前提下可,就可以用它实时缩放图片,旋转图片,验证图片有效性以及获取图片宽高以及图片类型信息。
快速生成表格
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问题