ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

nginx静态化页面

2019-09-25 11:04:01  阅读:272  来源: 互联网

标签:静态 nginx html proxy conf 页面


nginx静态化页面

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

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

新建文件夹item存放商品静态页面

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,html,proxy,conf,页面
来源: https://blog.csdn.net/qq_43514575/article/details/101351042

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有