url

Nginx location 配置踩坑过程分享

梦想与她 提交于 2020-03-01 16:25:12
这是五个小时与一个字符的战斗 是的,作为一个程序员,你往往发现,有的时候你花费了数小时,数天,甚至数星期来查找问题,但最终可能只花费了数秒,改动了数行,甚至几个字符就解决了问题。这次给大家分享一个困扰了我很久,我花了五个小时才查找出问题原因,最终只添加了一个字符解决了的问题。 问题描述 我们的业务系统比较复杂,但最终提供给用户的访问接口比较单一,都是使用 Nginx 来做一个代理转发,而这个代理转发,往往需要匹配很多种不同类型的 URL 转给不同的服务。这就使得我们的 Nginx 配置文件变得很复杂,粗略估计了下,我们有近20个 upstream,有近60个 location 匹配。这些配置按照模块分布在不同的文件中,虽然复杂,但是仍然在我们的努力下运行的良好。直到有一天,有位同事给我反映说偶尔有些 URL 会出现 404 的问题。一开始没太在意,因为他也说不准是哪一种 URL 才遇到这个问题。 问题查找 后来,慢慢的查找,找到了一些规律,一开始只知道是 tomcat 那边返回 404了,想到 Nginx 都代理给了 tomcat,一开始就怀疑是程序的问题,不会想到是 Nginx。 我开始查找代码的问题,我在本地的开发环境,尝试了很久,我使用 8080 端口访问,不论如何都是正确的结果,可是生产环境就是不行。然后我就听信了某坑友同事的理论,重启解决 95% 的问题,重装解决 100

微信二次分享

拥有回忆 提交于 2020-03-01 15:04:33
Q: 使用微信二次分享的时候,标题被截短,描述也变成了链接,图片也没有 solution 文档说明 微信JS-SDK说明文档 JS-SDK使用步骤 2.1 绑定域名 登录 微信公众平台 进入“公众号设置”-->>“功能设置”-->>“JS接口安全域名”,按照提示进行填写。 前端 2.2 引入js文件 在需要调用JS接口的页面引入如下JS文件,http://res.wx.qq.com/open/js/jweixin-1.2.0.js 2.3 通过config接口注入权限验证配置 wx.config({ debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: '', // 必填,公众号的唯一标识 timestamp: , // 必填,生成签名的时间戳 nonceStr: '', // 必填,生成签名的随机串 signature: '',// 必填,签名,见附录1 jsApiList: [] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); 2.4 通过ready接口处理成功验证 wx.ready(function(){ // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,

HttpClientUtils.java

时光毁灭记忆、已成空白 提交于 2020-03-01 14:41:43
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; import org.apache.commons.httpclient.Header; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpException; import org

HTTP协议的8种请求类型介绍

喜欢而已 提交于 2020-03-01 13:42:06
HTTP协议中共定义了八种方法或者叫“动作”来表明对Request-URI指定的资源的不同操作方式,具体介绍如下: OPTIONS:返回服务器针对特定资源所支持的HTTP请求方法。也可以利用向Web服务器发送'*'的请求来测试服务器的功能性。 HEAD:向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息。 GET:向特定的资源发出请求。 POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的创建和/或已有资源的修改。 PUT:向指定资源位置上传其最新内容。 DELETE:请求服务器删除Request-URI所标识的资源。 TRACE:回显服务器收到的请求,主要用于测试或诊断。 CONNECT:HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。 虽然HTTP的请求方式有8种,但是我们在实际应用中常用的也就是get和post,其他请求方式也都可以通过这两种方式间接的来实现。 HTTP协议中GET、POST和HEAD的介绍 2008-05-10 14:15 GET: 请求指定的页面信息,并返回实体主体。 HEAD: 只请求页面的首部。 POST: 请求服务器接受所指定的文档作为对所标识的URI的新的从属实体。

Django基础七之Ajax

为君一笑 提交于 2020-03-01 10:41:29
一 Ajax简介 AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步的Javascript和XML”。即使用Javascript语言与服务器进行异步交互,传输的数据为XML(当然,传输的数据不只是XML,现在更多使用json数据)。     AJAX 不是新的编程语言,而是一种使用现有标准的新方法。     AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。(这一特点给用户的感受是在不知不觉中完成请求和响应过程) AJAX 不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。       a.同步交互:客户端发出一个请求后,需要等待服务器响应结束后,才能发出第二个请求;       b.异步交互:客户端发出一个请求后,无需等待服务器响应结束,就可以发出第二个请求。   优点:AJAX除了 异步 的特点外,还有一个就是:浏览器页面 局部刷新 ;(这一特点给用户的感受是在不知不觉中完成请求和响应过程 示例   页面输入两个整数,通过AJAX传输到后端计算出结果并返回。     html文件名称为ajax_demo1.html,内容如下 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http

Java下gradle和maven镜像配置

时光总嘲笑我的痴心妄想 提交于 2020-03-01 10:05:44
Gradle镜像设置 对单个项目生效: 在项目文件中找到build.gradle文件,修改其中的buildscript和allprojects地址: buildscript { repositories { maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/' } maven{ url 'http://maven.aliyun.com/nexus/content/repositories/jcenter'} } } allprojects { repositories { maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'} maven{ url 'http://maven.aliyun.com/nexus/content/repositories/jcenter'} } } 对所有项目生效: 在USER_HOME/.gradle/下创建init.gradle文件 allprojects{ repositories { def ALIYUN_REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public' def ALIYUN_JCENTER_URL

网页打开app

爷,独闯天下 提交于 2020-03-01 10:04:45
App中页面分享到第三方app(微信、微博)或在浏览器打开时,有时需要提供打开app的功能。 目前有两种实现方式:(手机安装了app) 一、Andriod通过使用应用宝打开,ios通过app store打开。 实现方式:在html页面中将<a>标签href属性设定为下载app的url,当点击a标签更改window.location时,就会打开对应的app。 弊端:经测试在ios 9及以下版本和android中如果不安装应用宝,点击下载链接url时不会直接打开app,而是会跳转到app的下载界面。 二、通过在app中配置url scheme本地协议(手机安装了app) 弊端:不论是在ios还是andriod系统中,微信都不支持直接打开app,但是可以通过浏览器二次跳转来解决。 实现方式(以ios为例): html代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initial-scale=1.0"> <title>打开app的页面</title> </head> <body> <button id="openApp">点击这里app</button> </body> <script> function

网站URL网址末尾是否应该使用反斜杠

橙三吉。 提交于 2020-03-01 09:46:16
 当对网站进行SEO优化时,难免会遇到因为URL导致的重复页面问题,其中一个比较常见的现象就是因页面地址后是否有添加反斜杠造成的,举例如下:   链接A: www.example.com/abc/   链接B: www.example.com/abc   以上的两个链接唯一的区别就是结尾的反斜杠,其对应的内容相同,从普通用户角度而言,这样的链接其实就是一个,而从搜索引擎而言,不同的URL地址对应同样的内容,那么就容易被判断成重复内容,这也是我们在优化时最不愿意见到的现象。   那么网站在进行URL优化时,是否应该保留URL后面的反斜杠?   首先,要理解网站使用反斜杠和不使用反斜杠的区别?   当URL后不加斜杠指向的是网站目录下的一个文件,而加了反斜杠则表示指向的是一个目录,也就是目录与文件的区别。   其次,网址添加反斜杠的好处?   网站使用了反斜杠能加快网站载入时间,主要是因为网址没有加上反斜杠会给服务器增加一个查找是否有同名文件的过程。原理如下:网址末尾加了反斜杠会直接告知浏览器现在指向的是一个目录,并直接读取该目录下的默认文件。而没有加上反斜杠时浏览器首先会尝试读取根目录下的一个文件,如果没有该文件再查找一个与该文件同名的目录,最后才读取目录下的默认文件。   当我们明确了添加反斜杠对网站优化的益处,达闻提供了以下网址规范化SEO优化方法供参考:   1

Gradle使用国内的maven仓库

孤街浪徒 提交于 2020-03-01 09:28:40
感谢阿里云! 找到gradle的配置文件路径,例如Windows中的路径为C:\Users\${你的用户名}\.gradle 新建一个文件名为init.gradle,用记事本或者类似的编辑器打开,输入以下内容: 1 allprojects{ 2 repositories { 3 def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public/' 4 all { ArtifactRepository repo -> 5 if(repo instanceof MavenArtifactRepository){ 6 def url = repo.url.toString() 7 if (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com/')) { 8 project.logger.lifecycle "Repository ${repo.url} replaced by $REPOSITORY_URL." 9 remove repo 10 } 11 } 12 } 13 maven { 14 url REPOSITORY_URL 15 } 16 } 17 }

img元素srcset属性浅析

我只是一个虾纸丫 提交于 2020-03-01 05:37:34
img srcset 属性 img 元素的 srcset 属性用于浏览器根据宽、高和像素密度来加载相应的图片资源。 属性格式:图片地址 宽度描述w 像素密度描述x,多个资源之间用逗号分隔。例如: <img src="small.jpg " srcset="big.jpg 1440w, middle.jpg 800w, small.jpg 1x" /> 上面的例子表示浏览器宽度达到 800px 则加载 middle.jpg ,达到 1400px 则加载 big.jpg。注意:像素密度描述只对固定宽度图片有效。 img 元素的 size 属性给浏览器提供一个预估的图片显示宽度。 属性格式:媒体查询 宽度描述(支持px),多条规则用逗号分隔。 <img src="images/gun.png" alt="img元素srcset属性浅析" srcset="images/bg_star.jpg 1200w, images/share.jpg 800w, images/gun.png 320w" sizes="(max-width: 320px) 300w, 1200w"/> 上面的例子表示浏览器视口为 320px 时图片宽度为 300px,其他情况为 1200px。 css image-set() css属性image-set()支持根据用户分辨率适配图像。 body {