curl

【1017】nginx访问日志,日志切割,防盗链

无人久伴 提交于 2020-07-27 10:45:04
【1017】nginx访问日志,日志切割,防盗链 4.38 nginx访问日志 4.39 日志不记录静态文件 4.40 日志切割 4.41 静态文件过期缓存 4.42 nginx防盗链 4.38 nginx访问日志 访问日志: 就是 用户访问网站的记录 主要就是配置路径加格式 1、配置方法: 1)、主配置文件 /etc/nginx/nginx.conf 中,定义日志格式 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; 对应变量含义: 变量 含义 $remote_addr 客户端IP(公网IP) $http_x_forwarded_for 代理服务器的IP $time_local 服务器本地时间 $host 访问主机名(域名) $request_uri 方法, 访问的url地址 ,请求的http版本 $status 状态码 是200还是301,302 $http_referer referer 从哪里跳过来的 $body_bytes_sent 请求链接的大小 $http_user_agent 浏览器标识

微信域名被封-已停止访问该网页解决方法分享

Deadly 提交于 2020-07-27 09:58:01
背景 由于微信限制比较严格,域名一不小心就被判定是诱导分享的。所以,公司内部决定调研一套稳定、快速、正确率高的微信域名拦截检测查询接口。在微信中做推广的过程中,因为微信的限制比较严格,所以经常会发现域名被微信查封无法访问的问题,出现这一问题之后,自己的业务往往会受到巨大影响。使用微信域名检测接口是为了方便检测自己的域名状态,及时获取是否被微信查封。 资源 地址; https://url.cn/XPLBmy2R 原理 使用 Wireshark 抓包获取微信的域名拦截查询接口。 域名有如下几种状态: 域名能正常访问(未被微信拦截) 域名被微信拦截 非微信官方网页,继续访问将转换成手机预览模式(在公众号后台把域名添加到业务域名一般能解决这个问题) 据用户投诉及腾讯安全网址安全中心检测,该网页包含恶意欺诈内容,为维护绿色上网环境,已停止访问 网页包含诱导分享、关注等诱导行为内容,被多人投诉,为维护绿色上网环境, 'appkey' =>'appkey',//您申请的APPKEY 'url' =>'www.monkeyapi.com',//需要查询的网站 ); params); url, result = json_decode(result) { var_dump($result); }else { //请求异常 } /** 请求接口返回内容 @param string $url

在 Ubuntu 20.04 上安装 Python Pip

╄→尐↘猪︶ㄣ 提交于 2020-07-27 05:25:36
如何在 Ubuntu 20.04 上安装 Python Pip Pip 是一个用来安装 Python 软件包的工具。通过 pip,你可以从 Python 软件包索引(Pypi)和其他软件包索引中搜索,下载并且安装软件包。 这篇指南讲解如何在 Ubuntu 20.04 中安装 Python 3 和 Python 2. 我们将会讲解使用 pip 来安装和管理 Python 软件包的基础只是。 开始之前 Python 有两个分支,Python 2 和 Python 3。 从 Ubuntu 20.04 开始,Python 3 被包括在基础的系统安装之中。Python 2 在通用源仓库中可用。我们鼓励用户切换到 Python 3。 仅仅在没有模块对应的 deb 包的情况下,才使用 pip 来全局安装一个模块。 通过虚拟环境来使用 pip。 Python 虚拟环境允许你在每一个指定的项目下一个独立的位置安装 Python 模块,而不是全局安装。这种方式,你不用担心会影响其他的 Python 项目 为 Python 3 安装 pip 想要在 Ubuntu 20.04 上为 Python 3 安装 pip,以 root 或者其他 sudo 用户身份在终端运行下面的命令: sudo apt update sudo apt install python3-pip 上面的命令将会安装用来构建

012.Nginx负载均衡

不想你离开。 提交于 2020-07-27 04:00:34
一 负载均衡概述 1.1 负载均衡介绍 负载均衡是将负载分摊到多个操作单元上执行,从而提高服务的可用性和响应速度,带给用户更好的体验。对于Web应用,通过负载均衡,可以将一台服务器的工作扩展到多台服务器中执行,提高整个网站的负载能力。其本质采用一个调度者,保证所有后端服务器都将性能充分发挥,从而保持服务器集群的整体性能最优,这就是负载均衡。 二 Nginx负载均衡 2.1 优点 高并发连接 内存消耗少 配置文件非常简单 成本低廉 支持Rewrite重写规则 内置的健康检查功能 节省带宽 稳定性高 2.2 主要均衡机制 round-robin:轮询。以轮询方式将请求分配到不同服务器上。 least-connected:最少连接数。将下一个请求分配到连接数最少的那台服务器上。 ip-hash:基于客户端的IP地址。散列函数被用于确定下一个请求分配到哪台服务器上。 2.3 负载均衡策略 nginx的负载均衡策略可以划分为两大类:内置策略和扩展策略,扩展策略为第三方提供。 内置策略 轮询(默认):Nginx根据请求次数,将每个请求均匀分配到每台服务器; weight:加权轮询,加权轮询则是在第一种轮询的基础上对后台的每台服务赋予权重,服务器的权重比例越大,被分发到的概率也就越大。 least_conn:最少连接,将请求分配给连接数最少的服务器。Nginx会统计哪些服务器的连接数最少。 ip

flask restful-api实现及基于flask-httpauth实现基础权限管控(二)

浪尽此生 提交于 2020-07-27 01:14:07
本系列教程分为四个阶段 1.flask restful web service 2.flask restful api 3.flask httpauth实现权限管控 4.uwsgi管理flask应用     在上一篇文章中,介绍学习了flask实现restful web services的相关内容,在此基础上,接下来我们进行关于flask的restful api的开发学习。   在web services中的学习我们认识、了解到,flask的路由定义是由Flask类实例化后的route方法进行定义,但有个问题就是我们需要在每个函数头去定义此函数对应的路由,如果我们写的是类方法,则需要在路由函数中实例化后才可实现路由控制,显然这不利于大型的项目开发中,路由的管理。   restful api的特点即是: 可独立维护flask中路由,以下是本文学习flask restful api将会了解、学习的相关模块: from flask import Flask, jsonify, url_for, request # from flask.ext.restful 原文中使用的此模块在python3中不适用 from flask_restful import Api, Resource, fields, marshal, reqparse, abort   其中Flask、jsonify

golangWeb框架---github.com/gin-gonic/gin学习三(路由多视图函数、中间件、log日志)

◇◆丶佛笑我妖孽 提交于 2020-07-24 20:58:29
文章目录 gin.New 路由包含多个HandlerFunc函数 使用中间件 如何写log日志 gin.New 我们之前的例子都是利用了gin.Default(),那么gin.New()跟它有什么区别?来简单看下源码 gin.Default()源码如下 func Default() *Engine { debugPrintWARNINGDefault() engine := New() engine.Use(Logger(), Recovery()) return engine } 1 2 3 4 5 6 gin.New()源码如下 func New() *Engine { debugPrintWARNINGNew() engine := &Engine{ RouterGroup: RouterGroup{ Handlers: nil, basePath: "/", root: true, }, FuncMap: template.FuncMap{}, RedirectTrailingSlash: true, RedirectFixedPath: false, HandleMethodNotAllowed: false, ForwardedByClientIP: true, AppEngine: defaultAppEngine, UseRawPath: false,

php 使用curl获取采集页的302跳转地址

元气小坏坏 提交于 2020-07-24 14:43:53
function get302($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); $data = curl_exec($ch); $Headers = curl_getinfo($ch); curl_close($ch); if ($data != $Headers) return $Headers["url"]; else return false; } 来源: oschina 链接: https://my.oschina.net/u/4385953/blog/4328422

查看nginx版本号的几种方法

久未见 提交于 2020-07-24 03:30:40
1、 查看服务器上安装的nginx版本号,主要是通过nginx的-v或-V选项,查看方法如下图所示 -v 显示 nginx 的版本。 -V 显示 nginx 的版本,编译器版本和配置参数 [root@zq ~]# nginx -V nginx version: nginx/1.16.1 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) built with OpenSSL 1.0.2k-fips 26 Jan 2017 TLS SNI support enabled configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx

Is it possible to use `--data-urlencode` and `--data-binary` options for the same curl command?

≯℡__Kan透↙ 提交于 2020-07-24 03:19:06
问题 I am using curl and I would like to execute a HTTP PUT request by sending a --data-urlencode string and a --data-binary JSON file content. Is it possible to make that in the same curl command? I tried the following curl www.website.org --request PUT -H Content-Type: application/json --data-urlencode "key=sample_string" --data-binary @sample_file.json but it seems do not work as expected: key=sample_string and sample_file.json content are not send at all. 回答1: A couple of things here; Your

Is it possible to use `--data-urlencode` and `--data-binary` options for the same curl command?

谁说胖子不能爱 提交于 2020-07-24 03:17:53
问题 I am using curl and I would like to execute a HTTP PUT request by sending a --data-urlencode string and a --data-binary JSON file content. Is it possible to make that in the same curl command? I tried the following curl www.website.org --request PUT -H Content-Type: application/json --data-urlencode "key=sample_string" --data-binary @sample_file.json but it seems do not work as expected: key=sample_string and sample_file.json content are not send at all. 回答1: A couple of things here; Your