nginx部署hexo的方法

前言

部署hexo静态博客到生产环境通常有两种方法:

  1. nohup命令执行hexo s:由于hexo s是框架提供的调试方法,不是部署方式,因此在生产环境会存在性能问题,不建议使用;
  2. nginx部署静态资源:将本地调试好的hexo打包生成的public目录部署到nginx上。nginx性能好,访问速度快。

Hexo

  • 配置

    • 处理二级目录:当生产环境中,静态博客部署在二级目录下(如:“http://域名(ip)/blog”这种情况),需要修改hexo工程下的_config.yml配置文件,否则打包生成的css、js文件目录会缺失(默认在根目录),导致无法加载样式。一般修改rooturl,增加二级目录
        # URL
        ## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
        url: http://yoursite.com/blog
        root: /blog
        permalink: :year/:month/:day/:title/
        permalink_defaults:
    
    • 部署在根目录无需处理
  • 打包:通常在调试环境无需打包,修改后使用hexo s,即可生效,可以直接在本地查看效果。但是,以静态资源的方式部署需要打包生成静态资源,命令为:hexo generate

nginx

  • 配置静态资源路由

    • 示例:hexo打包完成之后,以静态资源的方式部署到nginx,增加一个location模块。路由的细节有两种:rootalias,主要区别就是怎么解析location后面的uri。以下代码以root为例:
    location /blog {
        root html;
        index index.html;
    }
    
    • root规则
      以上的示例,说明访问的实际路由为:html/blog/index.html

    • alias规则
      同样的路径,alias需要按下面这么写,location后面的blog不会接到alias后面,而且alias指定的目录名后面一定要加上"/"。(^~表示uri以某个常规字符串开头,用于匹配url路径(而且不对url做编码处理,例如请求/static/20%/aa,可以被规则^~ /static/ /aa 匹配到(注意是空格))。下面是alias示例:

    location ^~ /blog/ {
        alias html/blog/;
        index index.html;
    }
    
  • nginx常用命令

    • 启动:nginx
    • 停止:nginx -s stop
    • 重启:nginx -s restart
    • 指定配置文件启动:nginx -c 路径

参考:

  1. nginx之location(root/alias)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,853评论 18 139
  • 1.ngnix介绍 ngnix www服务软件 俄罗斯人开发 开源 性能很高 本身是一款静态WWW软件 静态小文件...
    逗比punk阅读 2,121评论 1 6
  • 匆匆那年,我们的青春印记。 当我们穿着已不再那么合身的校服,跟随的学生大众混迹我们暂别半年的高中校园,会不会,心中...
    JKLazy沫影阅读 330评论 0 0
  • 数据操作前对数据进行初始化工作,主要是建立数据库,新建表等工作。 create database test;cre...
    _String_阅读 294评论 0 0
  • 知识经济爆发的时代,如果你有足够的关注,会发现很多夺人眼球的标题均采用某个短期数字,兴奋地告诉你完全可以实现一个梦...
    你在微笑吗阅读 467评论 0 0