一、为什么要使用nginx动静分离
概述:将所有请求(静态 + 动态)发送给Nginx,Nginx再将动态请求发给网关,而静态资源(静态请求)直接从Nginx中获取;可以提高网站性能
1.所有的静态资源都放在Nginx里面
2.规则:/static/***所有请求都由Nginx直接返回
nginx响应静态资源请求这一行为不应该认为ngixn是作为反向代理服务器的表现,而应该说此时nginx的功能是作为静态资源服务器存储静态资源文件
二、docke安装ng
- 随便启动一个ng实例,只是为了复制出ng的配置文件
docker run -p 80:80 --name nginx -d nginx:1.10
- 将容器内的配置文件拷贝到目录(/mydata/nginx)
docker container cp nginx:/etc/nginx /mydata/nginx
- 复制完配置文件后容器就可以停止、删掉了
docker stop nginx
docker rm nginx
- 使目录更清晰,将配置文件放在/mydata/nginx/conf/下,执行下列命令
mv /mydata/nginx /mydata/conf
mkdir /mydata/nginx
mv /mydata/conf /mydata/nginx
- 创建新的nginx
docker run -p 80:80 --name nginx \
-v /mydata/nginx/html:/usr/share/nginx/html \
-v /mydata/nginx/logs:/var/log/nginx \
-v /mydata/nginx/conf:/etc/nginx \
-d nginx:1.10
cd /mydata/nginx/html
vi index.html
<h1>guli-mall</h1>
- 访问ip,若显示即为nginx配通
三、动静分离实现步骤
- Xshell连接上虚拟机,Nginx所有资源都在/mydata/nginx/html/下,将所有静态资源通过Xftp放在新建文件夹static下
如果文件传输失败,就用
chmod 777 目标文件夹
修改文件夹权限
- 删除项目中的原本的静态资源,修改前端代码中静态资源路径为新路径,改完重启项目
替换前
替换后
- 修改Nginx配置文件,重启Nginx
cd /mydata/nginx/conf/conf.d
vi gulimall.conf
location /static/ {
root /usr/share/nginx/html;
}
location / {
proxy_set_header Host $host;
proxy_pass http://gulimall;
}
docker resatrt nginx