美文网首页
黑阈服务器中部分 nginx 配置

黑阈服务器中部分 nginx 配置

作者: 简域工作室 | 来源:发表于2019-04-06 17:55 被阅读0次
  1. 中国访问,301 跳回中国地址。
    国内不支持 io 域名,只能解析到国外,然后 301 跳回。

    先设置 $country 环境变量。

    geo $country {
         default ZZ;
         1.3.0.0/16 CN;
         1.8.0.0/16 CN;
          # 后略
    }
    

    (关于 CN 具体列表,可以参照 chinaip 项目,通过解析 apnic 中分配的中国区域 ip,合并成大量 ip 分段。针对 nginx,也单独提供 geo.conf。)

    然后根据情况跳回可以备案的 .com 域名。

        set $zh_host "";
    
        if ($country = 'CN') {
            set $zh_host "zh.${host}";
        }
    
        if ($zh_host = zh.jianyu.io) {
                return 301 https://jianyv.com$request_uri;
        }
    
        if ($zh_host = zh.br.jianyu.io) {
                return 301 https://br.jianyv.com$request_uri;
        }
    
  2. latest.apk 跳转实际版本

    黑阈在服务器上,latest.apk 是一个软链接。在 nginx 中,获取实际的文件,然后跳转。

    下文使用 perl_set,是内建的 perl 相关模块。如果支持 lua,写法可以更友好。

    perl_set $realname '
        sub {
            my $r = shift;
    
            if (-l $r->filename) {
                    return readlink($r->filename);
            }
    
            return "";
        }
    ';
    

    然后 302 跳转。

         location /br/latest.apk {
             if ($realname != "") {
                 return 302 https://dl.jianyv.com/br/$realname;
             }
         }
    
  3. 针对操作系统与语言展示定制界面
    比如 brevent.sh 实际有 5 个版本。针对简体中文,不同操作系统会展示不同版本。值得注意的是,Android 是 Linux 子集,所以发现是 Android 后重设了操作系统。此外,在 css 中,如果是小屏,加入定制提示,这个利用的是 media 属性。(是的,我就是不想写 javascript ...)

        set $lang '';
        if ($http_accept_language ~ 'zh-CN') {
            set $lang 'zh';
        }
        # ie edge 按照标准发 zh-Hans
        if ($http_accept_language ~ 'zh-Hans') {
            set $lang 'zh';
        }
    
        set $os '';
        if ($http_user_agent ~ Windows) {
            set $os 'windows';
        }
        if ($http_user_agent ~ Macintosh) {
            set $os 'macos';
        }
        if ($http_user_agent ~ Linux) {
            set $os 'linux';
        }
        if ($http_user_agent ~ Android) {
            set $os '';
        }
    
        location / {
            index index.$os.$lang.html index.$lang.html index.html;
        }
    
  4. 所有错误页面,均展示为 404。对于这个 /404.html,当然也要返回 404。

        error_page 400 403 404 405 500 502 503 504 =404 /404.html;
        location = /404.html {
            internal;
        }
    

相关文章

  • 黑阈服务器中部分 nginx 配置

    中国访问,301 跳回中国地址。国内不支持 io 域名,只能解析到国外,然后 301 跳回。先设置 $countr...

  • 如何使用黑阈的执行指令

    黑阈包含两部分,黑阈界面和一直运行的黑阈服务。黑阈服务以 shell 身份运行,由事件日志驱动,同时接受黑阈界面管...

  • nginx基础

    Nginx 配置文件 文件结构 Nginx 配置文件由三部分组成: 全局块,主要设置一些影响 Nginx 服务器整...

  • Nginx指令配置概述

    1. nginx配置文件组成 全局块默认的配置文件开始到events块之间的部分内容,配置运行nginx服务器的用...

  • CentOS 7 nginx 安装和部署

    nginx的配置和简单使用 前端项目经常需要部署在公网服务器上,大部分人都是用 nginx 作为 web 服务器,...

  • 黑阈功能及类似应用

    黑阈主要分为三部分功能: 基础功能Android 8 以后,如果应用适配,可以基本不需要黑阈。对于 root 用户...

  • 利用nginx-rtmp搭建视频点播、直播、HLS服务器

    目录 概述 编译nginx 点播服务器的配置 直播服务器的配置 实时回看服务器的配置 问题 1. 概述 Nginx...

  • nginx配置文件nginx.conf详解

    在此记录下Nginx服务器nginx.conf的配置文件说明, 部分注释收集与网络. #运行用户 user www...

  • Nginx配置文件说明

    在此记录下Nginx服务器nginx.conf的配置文件说明, 部分注释收集与网络. #运行用户 user www...

  • Nginx常用配置参数详解

    在Nginx配置文件中,每一条指令配置都必须以分号结束,请不要忘记。 用户组配置 用于配置运行Nginx服务器用户...

网友评论

      本文标题:黑阈服务器中部分 nginx 配置

      本文链接:https://www.haomeiwen.com/subject/xkariqtx.html