【Nginx教程6】nginx 配置实例 (动静分离)
静态文件尽量不要放在 /root/ 目录下,以免踩坑.
1 2 | https://www.bilibili.com/video/BV1zJ411w7SV?p=12 https://www.bilibili.com/video/BV1zJ411w7SV?p=13 |
1. 什么是动静分离
动态请求 跟 静态请求 分离,可以理解成使用 nginx处理静态页面,tomcat处理动态页面.
第1种方式: 纯粹把静态文件独立成独立域名.放到独立服务器中.目前比较主流的方案.
第2种方式: 动态跟静态文件混合在一起发布,通过nginx来分开.
通过location指定不同的后缀名实现不同的请求转发.通过 expires参数设置,可以使
游览器缓存过期时间,减少与服务器之前的请求和流量.具体 expires 定义:是给一个资
源设定一个过期时间,也就是说无需去服务端验证,直接通过游览器自身确认是否过期既可,
所以不会产生额外的流量.(此种方法非常适合不经常变动的资源,如果经常更新的文件,
不建议使用expires来缓存),我这里设置3d,表示在这3天之内访问这个URL,发送一个请求,
比对服务器该文件最后更新时间没有变化,则不会从服务器抓取,返回状态码304,如果有修改,
则直接从服务器重新下载,返回状态码200.
2. 准备工作
(1) 在linux系统中准备静态资源.用于进行访问.
1 2 3 4 5 6 7 8 9 10 | cd / mkdir data cd data mkdir www mkdir images cd /data/images wget https://pic.bndstone.com/20220524112344.png mv 20220524112344.png 1.png cd /data/www vi a.html |
输入如下内容
1 | <html>test pages</html> |
3. 具体配置.
3-0. 安装nginx
1 | https://www.bndstone.com/3201.html |
3-1. 在nginx配置文件中进行配置.
1 2 | cd /usr/local/nginx/conf vi nginx.conf |
修改如下内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | server { listen 80; server_name 8.218.77.154; //改成IP ...... location /www/ { root /data/; index index.html index.htm; } location /images/ { root /data/; autoindex on; //打开 http://8.218.77.154/images/ 就会显示所有图片. } ...... } |
3-2. 重启nginx
1 2 | cd /usr/local/nginx/sbin/ ./nginx -s reload |
3-3. 放行端口80
1 2 3 | firewall-cmd --list-all firewall-cmd --permanent --add-port=80/tcp firewall-cmd --reload |
3-4. 阿里云后台放行端口80.
3-5. 测试页面.
1 2 | http://8.218.77.154/www/a.html http://8.218.77.154/images/1.png |
备注:
奇怪,文件放在root下,无论如何都打不开.
1 2 | /root/data/www/a.html ---> http://8.218.77.154/www/a.html /root/data/images/1.png ---> http://8.218.77.154/images/1.png |
后来改到根目录下,立马就成功.难道这文件不能放到root目录下吗?
1 2 | /data/www/a.html ---> http://8.218.77.154/www/a.html /data/images/1.png ---> http://8.218.77.154/images/1.png |