缘由在前段时间我们进行服务器迁移的过程中 由于使用了多服务器 增加了反向代理,导致页面在另一台机器打不开。原因是因为我们触发了一个nginx默认规则,这里记录一下仅供大家参考。演示环境基础信息域名:www.testnginx.com   目录结构:. ├── a │   └── index.html └── a.html注解:在根目录,我们有一个 a.html 和 a的文件夹nginx配置server {     charset utf-8;     client_max_body_size 128M;     listen 80;     server_name www.testnginx.com;
  一台nginx服务器开了目录浏览功能。方便下载文件。使用时发现,目录内的文件,创建时间比实际时间少8小时。查看官方文档:http://nginx.org/en/docs/http/ngx_http_autoindex_module.html  ,找到这个:autoindex_localtime,作用:是否用本地时间显示时间。默认:否,使用UTC时间。设置 autoindex_localtime on 问题解决。
需求缘由        最近接收了一个新的工具业务:ipublish发布系统,刚接手这个业务的时候,发现每次发布新的代码 需要到群里告知大家,我要停服务几分钟,准备更新代码啦。这尼玛 哪个公司都不敢这么牛逼的和用户说,我们网站要停服务几分钟,准备发布的。        基于这个原因我要对ipublish进行优化,如何优雅的发布代码,而用户是无感的功能需求发布系统自己更新迭代需求的过程中,不能停止服务,对用户是无感知的实现设计方案其实这个问题基本都知道解决方案,我这里就王婆卖瓜自卖自夸吧,来一张架构图架构非常简单,通过一个LB作为反向代理,然后将所有请求转发到 后端的tomat ,后端有两个tomcat ,但是提供服务的只能是某一个tomcat操作步骤前提条件LB 使用的Nginx 监听 80端口配置两个tomcat 一个 8080
  缘由经常会有人问xx框架怎么配置运行环境,这里我就给贴出吉祥三宝(Yii2,Laravel5,Thinkphp5 )的Nginx和Apache的配置,供大家参考NginxYii2server {         charset utf-8;         client_max_body_size 128M;         listen 80;         server_name yii.local.test;         root&n
  服务器经常会产生各种各样的日志文件,我们需要定期清理日志的分类系统日志应用日志系统日志例如系统的history 历史信息   crontab的运行日志  一般系统日志系统都帮我们运维好了,不需要额外配置应用日志例如nginx  的access 和 error 日志 ,php框架的运行日志,这些日志是我们排查问题的有力证据工具logrotatelogrotate是什么logrotate是大多数linux系统自带的日志切割工具logrotate的适用场景logrotate常用来切割仍在被写的“动态”文件,它支持 按时间间隔或文件大小 来触发文件的自动切分(automatic rotation)实战按天保存一周的Nginx日志压缩文件,保留30天,配置文件为「/etc/logrotate.d/nginx」最后代码如下(本人ubuntu系统)/data/logs/nginx/*.log {      &nb
为什么要使用HTTPS主要是为了安全,虽然没有100%的安全,但是我们可以尽量提高安全级别,目前大型网站都已经使用HTTPS了注册StartSSL注册页面  选择国家 和 输入 邮箱  他们会通过邮箱地址给你个验证码,在这期间不要关闭选项卡或浏览器 , 所以你只要保持打开状态,知道获得验证码并贴上它点击注册,设置证书密码下载证书到本地,点击证书文件,提示输入密码就输入上一步设置的密码,然后点击下图第三个框的here进行登录生成证书准备工作现在,我们需要使得StartSSL相信我们拥有自己的域名,我们想要为他生成一个新的证书。从控制面板中,点击“Validations Wizard”到此域名认证就通过了生成证书下载证书到本地,然后根据自己webserver使用不同的文件Nginx 配置server {     listen       80; &nbs
  每次都很容易忘记Nginx的变量,下面列出来了一些常用$remote_addr //获取客户端ip $binary_remote_addr //客户端ip(二进制) $remote_port //客户端port,如:50472 $remote_user //已经经过Auth Basic Module验证的用户名 $host //请求主机头字段,否则为服务器名称,如:blog.sakmon.com $request //用户请求信息,如:GET ?a=1&b=2 HTTP/1.1 $request_filename //当前请求的文件的路径名,由root或alias和URI request组合而成,如:/2013/81.html $status //请求的响应状态码,如:200 $body_bytes_sent        //&nbs
  最近公司网站被竞争对手用爬虫频繁访问,所以我们这边要禁止这些爬虫访问,我们通过nginx 指令就可以实现了方法一:直接在LB机器上封IP1.在 blocksip.conf 文件中加入要屏蔽的ip或者ip端$ sudo vim /etc/nginx/blocksip.conf deny 180.168.74.26; deny 91.212.45.0/24;2. 在nginx.conf中包含这个文件$ sudo vim /etc/nginx/nginx.conf http { ....... ....... include /etc/nginx/blocksip.conf; }3.重启服务$ sudo /etc/init.d/nginx reload方法二:直接在APP业务机器上操作(有时候LB并不能直接操作)这个时候我们不能通过$remote_addr获取ip
  Nginx的return关键字属于HttpRewriteModule模块:语法:return http状态码 默认值:无 上下文:server,location,if 该指令将结束执行直接返回http状态码到客户端. 支持的http状态码:200, 204, 400, 402-406, 408, 410, 411, 413, 416 , 500-504,还有非标准的444状态码.使用方法:#不符合规则的返回403禁止访问location /download/ {     rewrite  ^(/download/.*)/media/(.*)\..*$  $1/mp3/$2.mp3  break;     return&
最近在看  HTTP权威指南   看到介绍了HTTPS的ssl,自己就动手测试了下,将步骤记录下HTTPS简介什么是HTTPS?百科是这样解释的。HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。现在它被广泛用于互联网上安全敏感的通讯,例如交易支付等。使用openssl生成证书安装openssl本人ubuntu14.04已经安装了生成ca证书创建证书目录  mkdir ~/ssl/拷贝 CA.sh到证书目录 cp /usr/lib/ssl/CA.sh ~/ssl/生成证书cd ~/ssl/ && sh CA.sh -newca根据提示填写信息完成后,在demoCA下会生成证书文件,其中demoCA/private/cakey.pe
相信很多技术人员都知道有个github造福开发人员的git(分布式版本管理工具)代码管理社区,可以说现在git是开发人员的必备技能之一本周有个朋友公司需要一个类似github的代码仓库管理系统,本人选择了gitlab(没有什么对比了,好像目前就gitlab最好了并且维护也不错了),下面就来说说搭建私有github系统的过程服务器设备信息如下Ubuntu 14.04(64)    memory:8G    cpu:4    disk:100G    bandwidth:2Mbit/s下载gitlab-ce-8.3.4.deb官网地址:https://about.gitlab.com/downloads/ (下载比较慢还要翻墙,下面有一个云盘下载地址)访问密码 1091  https://yunpan.cn/crywEZAg
代理是互联网发展初期就有的一项技术,主要是通过在服务器上安装代理软件提供代理功能的。常见的代理主要有三类正向代理反向代理透明代理有点迷糊吧,什么正向、反向了。其实我刚开始听到这个概率也是挺迷糊的,下面我们一起来详细了解下正向代理在没有特别说明的情况下,代理说的就是正向代理。定义正向代理(forward proxy)是位于客户端【用户A】和原生服务器【服务器B】之间的代理服务器C图解从上图我们可以看出,所谓的正向代理 就是 代理服务器C 代替 用户A 访问 服务器B 。这就是正向代理存在的意义,那我为什么要代替 访问这种需求?作用用户A 本身 无法访问 服务器B:所谓的FQ(不敢写了,上次写了被**部分封站并警告了)Cache作用:Cache(缓存)技术和代理技术是密不可分(剧透下,反向代理也有缓存的作用),如果用户A 访问 服务器B 资源D之前,已经有用户通过代理服务器C访问了,那么代理服务器C可以将 资源D 保存一段时间。之后在保存有效期内 有人在访问 资源D ,代理服务器C
有一次去图书馆看书,遇到一个刚毕业不久,在图书馆学习php,我就和他聊天,他期间问到一个问题“如何开发一个大型网站”,这个问题吓不倒我呀,我了解一些了,当时就和他连说带比划了一次,回家了我仔细又想了想,觉得还是写篇文章记录下任何网站都是从一个小网站 演变成 一个复杂的网站的(后面我们用成熟的网站表示大型网站)才开始一个网站不可能非常成熟的,都是随着用户量的增长,业务功能的不断扩展逐渐完善的第一:最初的网站架构 这个时候应该是最简单的架构了,应用程序,文件,数据库,web软件 都放在一台服务器上了,如下图(这就是我现在的基本架构了,嗯哼,就是小网站了)第二:应用程序,文件,数据库分离随着业务的发展,一台服务器已经满足不了性能要求了,所以这个时候将 应用程序,文件,数据库分别放在单独的服务器上第三:可以适当使用缓存改善网站性能提升硬件的配置同时,我们也可以使用软件做性能优化的,这里我们重点说的是数据库缓存,目前可以使用memcache/redis等软件第四:使用集群改善应用服务器性
  提高网站可用性,这个话题就太广了,就按照我想到的写几点了,以后想到了再加1)容灾备份   对于有点规模的网站,服务器都不止1台,最简单的就是代码分布在好几台机器上。  第一:可以起到备份的作用,一台坏了,可以马上切到其他机器上  第二:降低机器的压力,增加并发处理能力2)负载均衡  上面一点我们提到代码放在好几台机器上,根据每台的硬件配置情况,很多软件都可以实现 请求分发的(反向代理),例如nginx,lvs了。我常用的是ngnix。可以通过nginx配置后端服务器,并且可以指定每个服务器的权重,这样就可以分发请求。并且nginx还可以通过failover配置 后端机器出问题了 如何处理反向代理是什么东西?是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端3) 服务器多IP,DNS服务流量分发   这个操作可以在以下两
  本日志内容来自互联网和平日使用经验,整理一下方便日后参考。正则表达式匹配,其中:* ~ 为区分大小写匹配* ~* 为不区分大小写匹配* !~和!~*分别为区分大小写不匹配及不区分大小写不匹配文件及目录匹配,其中:* -f和!-f用来判断是否存在文件* -d和!-d用来判断是否存在目录* -e和!-e用来判断是否存在文件或目录* -x和!-x用来判断文件是否可执行flag标记有:* last 相当于Apache里的[L]标记,表示完成rewrite* break 终止匹配, 不再匹配后面的规则* redirect 返回302临时重定向 地址栏会显示跳转后的地址* permanent 返回301永久重定向 地址栏会显示跳转后的地址一些可用的全局变量有,可以用做条件判断(待补全)$args$content_length$content_type$document_root$document_uri$host$http_user_agent$http_cookie$limit_rate$requ
  1. 处理所有请求到单一入口 (  rewrite all requests to index.php with nginx )目前我们做开发一般都是单入口的,所以都会使用web服务器做重定向到入口文件rewrite ^/(.*)$ /index.php?/$1 last;在nginx中加入这项配置就好了或者可以使用htaccess文件RewriteRule . index.php2.Nginx出现的413 Request Entity Too Large错误这个错误一般在上传文件的时候出现,打开nginx主配置文件nginx conf,找到http{}段,添加或者修改client_max_body_size 2m;然后重启 reload nginx 服务
  • 微信公众号 微信小程序
  • 微信机器人
  • 群1:1046090432
  • 群2:585567981