分类
Web

设置WordPress内所有URL都在新标签页打开

WordPress默认情况下几乎所有URL链接都是在同一个标签页打开。这样的话,读者点击一个链接就会离开当前页面,如果读者想要查看原来的页面又要进行返回操作,在某些情况下用户体验不佳。但是,如果一个一个单独为每个链接添加新标签页打开的代码,工作量会很大,也容易造成遗漏。本文就介绍一种通过一次添加代码的操作,达到全站链接都在新标签页打开的方法。

打开当前正在使用的WordPress主题中的header.php 文件(在WordPress中该文件用于设置全局页面的顶部),在 的后面加上:

<base target="_blank">
分类
Nginx Web 笔记

Nginx https 反向代理 http

在Docker中运行WEB应用,由主机Nginx反向代理。由于Docker中的应用是http,而反向代理强制使用https,会遇到有些情况代理失败。

只要在配置中加上

proxy_set_header X-Forwarded-Proto https;

完整配置:

server {
    listen 80;
    listen [::]:80;
    server_name engr-z.com www.engr-z.com;
#    enforce https
    return 301 https://$server_name:443$request_uri;
}

server {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name engr-z.com www.engr-z.com;

    client_max_body_size 1G;

    ssl_certificate /data/www/cert/engr-z.com_nginx/cert.pem;
    ssl_certificate_key /data/www/cert/engr-z.com_nginx/cert.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #使用此加密套件。
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #使用该协议进行配置。
    ssl_prefer_server_ciphers on;

    location / {
        proxy_pass http://127.0.0.1:8001/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-Ip $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header X-Forwarded-Proto https;
#        proxy_cookie_path / /;
    }
}
分类
Web

JS保存文件到本地

将页面的JSON数据保存到本地:

var content = JSON.stringify(json对象);
var eleLink = document.createElement('a');
eleLink.download = "info.json";
eleLink.style.display = 'none';
// 字符内容转变成blob地址
var blob = new Blob([content]);
eleLink.href = URL.createObjectURL(blob);
// 触发点击
document.body.appendChild(eleLink);
eleLink.click();
// 然后移除
document.body.removeChild(eleLink);
分类
Java Web 软件

高性能对象存储-MinIO

前言

在之前的图床开发中撸主曾使用了分布式文件服务FASTDFS和阿里云的OSS对象存储来存储妹子图。奈何OSS太贵,FASTDFS搭建配置又太繁琐,今天给大家推荐一款极易上手的高性能对象存储服务MinIO 

简介

MinIO 是高性能的对象存储,兼容 Amazon S3 接口,充分考虑开发人员的需求和体验;支持分布式存储,具备高扩展性、高可用性;部署简单但功能丰富。官方的文档也很详细。它有多种不同的部署模式(单机部署,分布式部署)。

为什么说 MinIO 简单易用,原因就在于它的启动、运行和配置都很简单。可以通过 docker 方式进行安装运行,也可以下载二进制文件,然后使用脚本运行。

分类
Web

文件共享之WebDAV

做一个文件服务器,常用的共享方式有:NFS、Samba、FTP、SFTP、WebDAV。对比这几种方式:

NFS:Linux默认文件共享协议,适合在Linux系统,跨平台使用很不方便。排除。

Samba:Windows文件共享协议,跨平台好,在Windows资源管理器内就能打开使用。但是要用在公网上不方便。排除。

FTP:协议不安全,有主动模式和被动模式,在公网上穿透也不方便。排除。

SFTP:基于SSH,一般用它做共享文件服务器很少,需要安装额外工具软件,性能不如Samba和NFS。排除。

WebDAV:一种基于 HTTP 1.1协议的通信协议。它扩展了HTTP 1.1,在GET、POST、HEAD等几个HTTP标准方法以外添加了一些新的方法,使应用程序可对Web Server直接读写,并支持写文件锁定(Locking)及解锁(Unlock),还可以支持文件的版本控制。

综上,WebDAV是最好适合我的选择。主流Nginx、Apache等Web服务器都支持WebDAV。因为Web服务器本来就在公网上,基于WebDAV共享,用户可以用浏览器或专用工具,通过80端口直接访问。

分类
Web 日记 笔记

JS分页与表生成

几年前有写过一个js分页插件传到github上,插件主要做了页码的生成。但实际开发中,其实还可以把表格生成一起做了,能减少很多重覆的工作。于是写了新的js分页插件,增加表格生成。

插件依赖jquery,表格需严格按规范,显示数据应该用tbody包含起来,变量声名如图:

分类
Web 笔记

利用Access-Control-Allow-Origin解决跨域请求

传统的跨域请求没有好的解决方案,无非就是jsonp和iframe,随着跨域请求的应用越来越多,W3C提供了跨域请求的标准方案(Cross-Origin Resource Sharing)。IE8、Firefox 3.5 及其以后的版本、Chrome浏览器、Safari 4 等已经实现了 Cross-Origin Resource Sharing 规范,实现了跨域请求。

在服务器响应客户端的时候,带上Access-Control-Allow-Origin头信息。
如果设置 Access-Control-Allow-Origin:*,则允许所有域名的脚本访问该资源。
Access-Control-Allow-Origin:https://www.wangzhengzhen.com,允许特定的域名访问。

如JAVA添加响应头信息:

response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "POST,GET");
分类
Web 笔记

JS分页插件

查询分页几乎是每个系统都会用到的,之前用JSP写了一个分页组件,但是使用起来不太访便,需要在导入分页组件的页面上重写一个javascript的查询方法。所以我进行了改进,用纯javascript实现,写了一个新的分页插件。这个版本的分页插件不仅必免重写查询方法,还增强了通用性。因为是javascript实现,所以除了适用于java,也适用于php、.net等。其实这个分页插件是13年上半年就写好了的,一直在使用,没有发现bug。

使用时需要引入jquery和分页插件本身js文件。

<script src="./jquery.js" type="text/javascript">
<script src="./paging.js" type="text/javascript"></script>
<script type="text/javascript">
var paging = $.paging({
               id:"paging",
               current:"${paging.current }",
               row:"${paging.row }",
               count:"${paging.count}",
               total:"${paging.total}",
               url:queryUrl,
               condition:{}
               });
</script>