nginx静态化页面
程序员文章站
2022-05-17 09:21:54
...
nginx静态化页面
静态化技术就是让用户访问的资源变成静态html页面,针对一些访问量大、不改动或者改动不频繁的业务,比如商品详情页(上架后数据基本不会变化)。生成的静态页面html放在nginx服务器上(Tomcat的上一级),用户访问不需要访问tomcat服务器,直接在nginx服务器中拿到需要的页面。
在nginx的/opt/html/目录下新建一个文件夹存放静态页面
vim /opt/nginx/conf/nginx.conf配置默认地址
接下来,我们修改nginx,让它对商品请求进行监听,指向本地静态页面,如果本地没找到,才进行反向代理:
监听80端口
root html是nginx下的html文件
server {
listen 80;
server_name www.leyou.com;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location /item {
# 先找本地
root html;
if (!-f $request_filename) { #请求的文件不存在,就反向代理
proxy_pass http://127.0.0.1:8084;#端口设置为自己的本机地址
break;
}
}
location / {
proxy_pass http://127.0.0.1:9002;
proxy_connect_timeout 600;
proxy_read_timeout 600;
}
}
复制可能出现错误
vim /opt/nginx/conf/nginx.conf检查代码是否出错
没有错误重启nginx
nginx -s reload
业务代码
public void creatHtml(Long spuId){
//上下文
Context context = new Context();
context.setVariables(loadModel(spuId)); //参数是一个map集合
//输出流
File dest = new File("C:\\Users\\Administrator\\IdeaProjects\\upload", spuId + ".html");
try(PrintWriter writer = new PrintWriter(dest,"UTF-8")){
templateEngine.process("item",context,writer);
}catch (Exception e){
//生成html
log.error("[静态页服务] 生成静态页出错!",e);
}
测试代码
@RunWith(SpringRunner.class)
@SpringBootTest
public class PageServiceTest {
@Autowired
private PageService pageService;
@Test
public void creatHtml() {
pageService.creatHtml(141L);
}
}
上一篇: 滋补气血药膳-红稻米粥
下一篇: 高三学生:春困→焦虑→退学