欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

nginx静态化页面

程序员文章站 2022-05-17 09:21:54
...

nginx静态化页面

静态化技术就是让用户访问的资源变成静态html页面,针对一些访问量大、不改动或者改动不频繁的业务,比如商品详情页(上架后数据基本不会变化)。生成的静态页面html放在nginx服务器上(Tomcat的上一级),用户访问不需要访问tomcat服务器,直接在nginx服务器中拿到需要的页面。

在nginx的/opt/html/目录下新建一个文件夹存放静态页面

nginx静态化页面

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);
    }
}
相关标签: nginx静态化页面