nginx 1.14.0 描述: nginx自带的upstream配置,如果后端挂了,接口会慢,原因不讲述,故接入第三方的自动检测与自动踢除模式 nginx_upstream_check_module模块: *** 下载地址https://github.com/yaoweibin/nginx_upstream_check_module *** wget 'http://nginx.org/download/nginx-1.14.0.tar.gz' tar -xzvf nginx-1.14.0.t…
1.概述 之前我们使用Keepalived实现了Nginx服务的双机主备高可用,但是有几个问题没有解决,今天一起探讨一下. 1)在双机主备机制中,Keepalived服务如果宕了,会自动启用备机进行服务,但Nginx服务如果负载过大宕了,虚拟ip是不会指向备机的. 2)双机主备的特点是,只有1台机器在提供服务,备机在主机的Keepalived服务宕掉后才会提供服务,大大的造成了资源的浪费. 3)目前比较流行租用云服务器去运营公司的产品,那云服务器支不支持虚拟IP呢? 今天我们就上述的三个问题来讲…
nginx url自动加斜杠问题及301重定向 时间:2016-02-04 15:14:28来源:网络 导读:nginx url自动加斜杠问题及301重定向,URL指向一个目录并且在最后没有包含斜杠,会301重定向跳转,添加server_name或修改访问重定向.   nginx url自动加斜杠问题及301重定向 内部服务器使用nginx,做网站测试之用.不同域名使用端口号区分,如www用默认的80端口,其它域名用81,82... 有时直接在地址栏敲网址,会发现跳转到localhost.loc…
Nginx 反向代理后,后端Nginx服务器无法正常获取客户端的真实IP nginx通过http_realip_module模块来实现的这需要重新编译,如果提前编译好了就无需重新编译了1,重新编译nginx编译./configure --user=www --group=www --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_m…
#!/usr/bin/env python #--coding:utf8-- import sys,subprocess,os,datetime,paramiko,re local_path='/home/pangpeng/' nginx_web_path='/var/www/html/' tomcat_webapps_path='/usr/local/tomcat7/webapps/' backup_nginx_path='/tmp/backup_nginx/' backup_tomcat_a…
本文主要解决:使用nginx反向代理处理前后端跨域访问的问题 1.何为跨域访问? 以下类型为跨域访问 1)不同域名间访问 www.zuiyoujie.com和www.baidu.com 2)同域名不同端口 www.zuiyoujie.com和www.zuiyoujie.com:8080 3)同于名不同协议 http和https 4)域名和该域名自己的IP www.zuiyoujie.com和自己解析的IP:192.168.1.1 5)二级域名相同,三级级域名不同 aaa.zuiyoujie.co…
Nginx解决跨域问题 后端接口 请求地址 返回数据(json数据) http://127.0.0.1:8080//app Hello World! 前端代码 通过nginx做静态资源服务器访问端口8081 <!doctype html> <html> <head> <meta charset="utf-8"> <title></title> <script src="https://cdn.sta…
前言 consul-template 是 Consul 的一个守护程序,使用 consul-template 可以方便快速的实现对 Consul Key/Value 存储系统的访问,可以从 KV 系统中读取数据.监视变动.同步本地文件:还可以在执行模板更新的同时,执行本地系统命令,比如常见的就是在同步数据到本地模板文件后,生成 Nginx 配置文件,并执行 nginx -s reload 命令,使 Nginx 重新加载配置文件. consul-template 的特点 智能发现:一旦开始运行 c…
一.架构图 二.组件介绍 1.Registrator Registrator:一个由Go语言编写的,针对docker使用的,通过检查本机容器进程在线或者停止运行状态,去注册服务的工具.所以我们要做的实验,所有的工具都是在docker上运行的,就是因为registrator是通过检查docker容器的状态来判断服务状态的,这样就和我们的代码实现完全解耦了,对上层透明化,无感知.它有如下特点 通过docker socket直接监听容器event,根据容器启动/停止等event来注册/注销服务每个容器…
nginx脚本自动安装 脚本功能: 自动安装nginx 自动判别系统是否安装nginx 自定义安装nginx路径 自定义安装nginx版本. #!/bin/bash #2019年10月30日16:00:50 #auto install nginx web #by author sunjinhua ######################## NGX_USR="www" NGX_VER="$1" NGX_YUM="yum install -y"…
在nginx.conf配置文件中 在server添加 location /nstatus { check_status; access_log off; #allow 192.168.2.11; #deny all; } 重启nginx后报403 forbidden错误. 最后发现要在upstream里添加check参数 upstream mobile-portal{ server ; server ; check interval=3000 rise=2 fall=5 timeout=1000…
Nginx基于连接探测,如果发现后端异常,在单位周期为fail_timeout设置的时间,中达到max_fails次数,这个周期次数内,如果后端同一个节点不可用,那么接将把节点标记为不可用,并等待下一个周期(同样时常为fail_timeout)再一次去请求,判断是否连接是否成功.如果成功,将恢复之前的轮询方式,如果不可用将在下一个周期(fail_timeout)再试一次. #注:proxy_temp_path和proxy_cache_path指定的路径必须在同一分区 proxy_temp_pat…
一.安装nginx 下载windows版nginx (http://nginx.org/download/nginx-1.12.2.zip),之后解压到需要放置的位置(C:\nginx) 二.将Nginx设置为Windows服务 需要借助"Windows Service Wrapper"小工具,项目地址: https://github.com/kohsuke/winsw 下载地址: http://repo.jenkins-ci.org/releases/com/sun/winsw/wi…
一.需求 我们使用Nginx做七层负载均衡,后端是Tomcat.项目采用灰度发布方式,每次项目升级,都要手动先从Nginx下摘掉一组,然后再升级这组,当项目快速迭代时,手动做这些操作显然会增加部署时间,于是就想通过脚本实现自动化管理Nginx配置文件. 当时考虑自己写Shell脚本对Nginx配置文件操作,需要用到sed流编辑器,sed本身没有条件判断语句,并不能灵活判断配置文件中要添加/删除位置,因此会增加配置错误风险. 在查资料无意间发现confd能自动管理配置文件,通过模板渲染生成配置文件…
nginx每天日志量比较大的时候,最好每天自动切割,存储,这样可以方面以后的查询和分析 #!/bin/sh ################### #filename: nginx_log_rotate.sh #vsersion: 0.1v #1 0 * * * /bin/sh /home/project/monitor/nginx_log_rotate.sh >/dev/null 2>&1 ################### logs_path="/usr/local/…
1.代理和跨域 1.1 正向代理 1)用户希望代理服务器帮助其和要访问服务器之间实现通信,需要: a.用户IP报文的目的IP=代理服务器IP: b.用户报文端口号=代理服务器监听端口号: c.HTTP消息里的URL要提供服务器的链接: 2)代理服务器可以根据HTTP消息里的URL提供服务器的链接与服务器进行连接通信: 3)服务器返回网页: 4)代理服务器打包网页返回给用户: 1.2 反向代理 单个服务器的处理客户端(用户)请求能力是有限的,当用户的请求达到一定数量时,会造成服务器忙,此时可以使用…
Nginx 的日志都是写在一个文件当中的,不会自动地进行切割,如果访问量很大的话,将导致日志文件容量非常大,不便于管理和造成Nginx 日志写入效率低下等问题.所以,往往需要要对access_log.error_log日志进行切割. 切割日志一般利用USR1信号让nginx产生新的日志.实例: 12345678910111213141516 #!/bin/bash logdir="/data/logs/nginx"pid=`cat $logdir/nginx.pid`DATE=`dat…
[root@mongodb-host supervisord]# cat mongo.conf [program:mongo]command=/usr/local/mongodb/bin/mongod -f /mnt/server/mongo/mongodb.confstartretries=2directory=/usr/local/mongodbuser=rootnumprocs=1startsecs=0autorestart=true   supervisor开机自动重启脚本   #! /…
前几篇先是记载了如何通过nginx配置服务负载均衡,后面记载了如何通过 ocelot 配置 服务负载均衡,分别介绍了用webapi注册服务以及配置文件注册服务,通过ocelot webapi + consul 配置负载均衡系列学习完毕. 然而nginx负载均衡没有服务发现,依然不能用生产环境,本篇将介绍如何通过 nginx+consul 配置多台服务器的负载均衡并支持服务发现. 试验背景和目的:一个微服务,有一个网关入口,如果网关出现故障,那么整个微服务马上瘫痪,那么我们有必要把网关布署在多台服…
随着网站的运行时间越来越长,日志文件也会随之越来越大需要对Nginx日志进行切割,下面是每周六晚上自动进行日志切割的shell脚本 脚本如下: [root@jrjs ~]# vim /usr/local/nginx/logbak.sh   #新建脚本名为logbak.sh#!/bin/bash #解释器date=`date +%Y%m%d`    #自定义date变量,值等于当前日期logpath=/usr/local/nginx/logs #自定义logpath变量,值等于Nginx日志所在路…
描述 我们配置了一个proxy模式下的nginx, upstream backend-test { server ; } server { listen ; location = /nginx/hwwc/ { proxy_pass http://backend-test; proxy_redirect off; } location / { ; } } 访问 http://t103:8080/nginx/hwwc/ 可以正常访问80端口的服务. 访问curl http://t103:8080/n…
项目是前后端分离:前端用vue开发,后端用的是springboot开发 会产生跨域问题,故在前端里用了代理 1.本前端项目是用vue开发: 1.1打包:终端 vscode快捷键:crtl+~  然后npm run build 1.2:生成一个dist文件:复制到nginx下的html中. 1.3:更改nginx中 conf->nginx.conf 1.4.nginx -s quit强制停止,然后在start nginx.exe 进行启动,有时nginx中重启没用,访问 10.10.5.88:80…
部署完毕nginx之后,发现自己的/var/log/nginx/*log的日志不会压缩,一直都是一个文本写日志, 时间久了,日志文件内存过于增加,将会导致在日志添加过程效率降低,延长时间. 默认安装的nginx都会每天凌晨自动去备份,但是也有nginx 不会自动备份压缩日志, 于是我们先使用命令看看配置: cat /etc/logrotate.d/nginx 当然也可以直接修改 vim /etc/logrotate.d/nginx 然后把我下面的命令粘贴进去 /var/log/nginx/*lo…
Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器,因它的稳定性.丰富的功能集.示例配置文件和低系统资源的消耗而闻名.但是他的日志系统实在是太欠了,所有的日志都会输出到一个文件中,随着时间的过去,那个文件变得越来越大,对我们分析日志非常不方便. 网上目前出来的方式都是在 linux下写脚本来分割日志,但是这种方式很不方便,尤其是对linux环境不熟悉的同学,写这个很费劲,而且系统重启之类的,这个脚本要…
一.uwsgi和nginx简介 1.uwsgi(摘抄于百度百科): uWSGI是一个Web服务器,它实现了WSGI协议.uwsgi.http等协议.Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换.WSGI是一种Web服务器网关接口.它是一个Web服务器(如nginx,uWSGI等服务器)与web应用(如用Flask框架写的程序)通信的一种规范. 2.nginx(摘抄于百度百科): Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一个IMA…
net stop nginx taskkill /im nginx.exe /f cd E:\nginx e: set NO=%Date:~0,4%%Date:~5,2%%Date:~8,2% set t=%Time% if "%t:~0,1%" ==" " ( set t=0%t:~1% ) set NO=%Date:~0,4%%Date:~5,2%%Date:~8,2%%t:~0,2%%t:~3,2%%t:~6,2% move logs\access.log b…
阅读更多 希望实现的效果是,用户只要访问域名,自动跳转到index.html页面 原本配置为: location / { root   /users/apple/git_local/YAE/YAE/frontend; index  /portal/nail/index.html; } location / { root /users/apple/git_local/YAE/YAE/frontend; index /portal/nail/index.html; } 这样虽然可以达到目的,但是浏览…
本文通过源码展示如何实现表单提交前,验证码先检测正确性,不正确则不提交表单,更新验证码. 1.前端代码 index.html <!DOCTYPE html> <html> <head> <title>验证码提交自验证</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta htt…
1.日志配置 Nginx 日志分 access.log 记录哪些用户,哪些页面以及用户浏览器,IP等访问信息: error.log 记录服务器错误的日志 配置日志存储路径 location / { access_log          /usr/local/nginx/logs/access.log; error_log           /usr/local/nginx/logs/error.log; } 按自己要求配置日志格式 http { include       mime.type…
缘起 最近在调试网络通信,每次一有点小修改,都要将程序从开发机复制到测试机,不胜烦扰.既然我们程序猿,为什么要那么死板呢,能够用代码解决的问题,就不要用手去解决. 解决过程 复制 手工复制外有没有其他办法了?这个时候大家一定会想到批处理.在命令提示符下面,我们用于管理文件和文件夹的命令比较多,比如RENAME.DEL.COPY用于文件,MKDIR.RMDIR.XCOPY用于目录. 如果查看常用的命令,可以通过在命令提示符中输入Help进行查看,如下图: 我们需要复制整个目录,所以使用XCOPY命…