nginx配置动静分离

nginx配置动静分离

这个实验动静资源的分配是通过nginx重定向来做的,是通过nginx来分离的,而不是到不同的tomcat上去寻找资源。

1.准备静态资源,创建data文件夹,注意data 文件夹的路径
/home/wu/data

nginx配置动静分离

image里为一张图片
www里为一个网页

进入配置文件开始配置:
vim /usr/local/nginx/conf/nginx.conf

意思是:当在192.168.111.130服务器监听的80端口收到匹配/www/的访问时,转到/home/wu/data/www下去访问,这root和上一篇文章里提到的alias有相似的作用,细微的区别是这里/www文件夹会直接接上root后的路径,不会被丢弃。
其中index的解释:用于设定访问的网页根目录
当访问根目录比如 http://127.0.0.1/ 时,index默认配置为index.htm,就会首先去读 http://127.0.0.1/index.htm ,当然这个index.htm加不加都会读,用户每当访问一个目录,都会先去找这个目录下的index.htm ,如果找不到就去找index.htm,依次往下。

autoindex on;是为了列出当前文件夹的内容,不知道我这里怎么就直接显示图片了。

nginx配置动静分离

先关掉nginx
sudo ./nginx -s stop
再开启
sudo ./nginx

浏览器输入:192.168.111.130/www/01.jpg访问
在192.168.111.130服务器监听的80端口收到匹配/www/的访问时,转到/home/wu/data/www下去访问

nginx配置动静分离

按照道理应该是类似于这样的,有个列表

nginx配置动静分离

nginx配置动静分离

alias为别名功能

location /i {
alias /var/www/html/images/;
}

在这个location中,如果url请求 " /i/logo.gif " ,那么nginx将会在服务器上查找 “/var/www/html/images/logo.gif”文件,也就是说请求的url中location后面的部分会被追加到alias指定的目录后面,而location后面的 /i 路径将被自动丢弃。

root和alias的区别


location ~ ^/download/(.*)$ {
alias /home/webdata/www/$1;
}

在这个location中,如果url请求 " /download/ebook.tar.gz " ,那么nginx将会在服务器上查找 “ /home/webdata/www/ebook.tar.gz”文件


location /i {
root /var/www/html/images/;
}

在这个location中,如果url请求 " /i/logo.gif " ,那么nginx将会在服务器上查找 “/var/www/html/images/i/logo.gif”文件,也就是说请求的url中location后面的部分会被追加到root指定的目录后面.

location ~ ^/download/(.*)$ {
alias /home/webdata/www/$1;
}

在这个location中,如果url请求 " /download/ebook.tar.gz " ,即/ebook.tar.gz设为变量1 ,那么nginx将会在服务器上查找 “ /home/webdata/www/ebook.tar.gz/download/ebook.tar.gz”文件


alias指定的是当前目录,root指定的是根目录
一般情况下,建议在location / 中通过root命令来匹配根目录,其他目录匹配的位置使用alias命令