准备环境  :

两台web服务     安装http  写入文档  并启动

yum -y install httpd

echo "192.168.2.100" > /var/www/html/index.html

systemctl restart httpd

安装nginx

1.  配置Nginx服务器,添加服务器池,实现反向代理功能

修改/usr/local/nginx/conf/nginx.conf配置文件

http {

.. ..

#使用upstream定义后端服务器集群,集群名称任意(如webserver)

#使用server定义集群中的具体服务器和端口

upstream webserver {

server 192.168.2.100:80;

server 192.168.2.200:80;

}

.. ..

server {

listen        80;

server_name localhost;

location / {

#通过proxy_pass将用户的请求转发给webserver集群

proxy_pass http://webserver;

}

}

/usr/local/nginx/sbin/nginx -s reload                     重新加载配置

curl http://192.168.4.5                                     //使用该命令多次访问查看效果
2.配置upstream服务器集群的调度算法

upstream webserver {

#通过ip_hash设置调度规则为:相同客户端访问相同服务器

ip_hash;

server 192.168.2.100 weight=1 max_fails=2 fail_timeout=10;

server 192.168.2.200 weight=2 max_fails=2 fail_timeout=10;

server 192.168.2.101 down;

}

  1. #weight设置服务器权重值,默认值为1
  2. #max_fails设置最大失败次数,测试服务器几次才确认服务器失败
  3. #fail_timeout设置失败超时时间,单位为秒
  4. #down标记服务器已关机,不参与集群调度

(可根据需求更改集群池属性)

3.Nginx的TCP/UDP调度器

部署支持4层TCP/UDP代理的Nginx服务器

yum -y install gcc pcre-devel openssl-devel        //安装依赖包

wget   http://nginx.org/download/nginx-1.12.2.tar.gz     (也可配置阿里源用yum安装)

tar -xf nginx-1.12.2.tar.gz

cd nginx-1.12.2

./configure   --with-http_ssl_module   --with-stream

//开启SSL加密功能         //开启4层反向代理功能

make && make install     //编译并安装

配置Nginx服务器,添加服务器池,实现TCP/UDP反向代理功能

vim /usr/local/nginx/conf/nginx.conf

stream {

upstream backend {

server 192.168.2.100:22;            //后端SSH服务器的IP和端口

server 192.168.2.200:22;

}

server {

listen 12345;                    //Nginx监听的端口

proxy_pass backend;

}

}

/usr/local/nginx/sbin/nginx -s reload                 重新加载配置

ssh 192.168.4.5 -p 12345            //使用该命令多次访问查看效果

4.优化404页面

修改Nginx配置文件,自定义报错页面

vim /usr/local/nginx/conf/nginx.conf

charset utf-8; //仅在需要中文时修改该选项

error_page 404 /404.html;    //自定义错误页面

.. ..

vim /usr/local/nginx/html/404.html        //生成错误页面

Oops,No NO no page …

/usr/local/nginx/sbin/nginx -s reload                 重新加载配置

firefox http://192.168.4.5/xxxxx        //访问一个不存在的页面

优化Nginx并发量

优化前使用ab高并发测试

ab -n 2000 -c 2000 http://192.168.4.5/

Benchmarking 192.168.4.5 (be patient)

socket: Too many open files (24)                //提示打开文件数量过多

vim /usr/local/nginx/conf/nginx.conf
.. ..

worker_processes 2;                    //与CPU核心数量一致

events {

worker_connections 65535;        //每个worker最大并发连接数

}

.. ..

优化Linux内核参数(最大文件数量)

ulimit -a                        //查看所有属性值

ulimit -Hn 100000                //设置硬限制(临时规则)

ulimit -Sn 100000                //设置软限制(临时规则)

vim /etc/security/limits.conf

*          soft       nofile        100000

*          hard      nofile        100000

ab -n 2000 -c 2000 http://192.168.4.5/                       优化后测试服务器并发量

优化Nginx数据包头缓存
优化前,使用脚本测试长头部请求是否能获得响应

cat lnmp_soft/buffer.sh

#!/bin/bash

URL=http://192.168.4.5/index.html?

for i in {1..5000}

do

URL=${URL}v$i=$i

done

curl $URL                                //经过5000次循环后,生成一个长的URL地址栏

[root@proxy ~]# ./buffer.sh

.. ..

<center><h1>414 Request-URI Too Large</h1></center>        //提示头部信息过大

修改Nginx配置文件,增加数据包头部缓存大小

vim /usr/local/nginx/conf/nginx.conf

.. ..

http {

client_header_buffer_size 1k;        //默认请求包头信息的缓存

large_client_header_buffers 4 4k;        //大请求包头部信息的缓存个数与容量

.. ..

/usr/local/nginx/sbin/nginx -s reload                 重新加载配置

优化后,使用脚本测试长头部请求是否能获得响应

5.修改Nginx配置文件,定义对静态页面的缓存时间

vim /usr/local/nginx/conf/nginx.conf

server {

listen 80;

server_name localhost;

location / {

root html;

index index.html index.htm;

}

location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ {

expires        30d;            //定义客户端缓存时间为30天

}

}

cp /usr/share/backgrounds/day.jpg /usr/local/nginx/html

/usr/local/nginx/sbin/nginx -s reload                 重新加载配置

nginx反向代理 和部分优化的更多相关文章

  1. nginx反向代理配置及优化

    nginx反向代理配置及优化前言: 由于服务器apache抗不住目前的并发.加上前端squid配置后,问题依然无法解决.而页面程序大部分是动态.无法使用fastcgi来处理.因此想使用nginx做为反 ...

  2. nginx反向代理的配置优化

    作者:守住每一天 blog:liuyu.blog.51cto.combbs:bbs.linuxtone.orgmsn:liuyubj520#hotmail.comemail:liuyu105#gmai ...

  3. Nginx 反向代理、负载均衡、页面缓存、URL重写以及读写分离

    1.环境准备 前端Nginx:10.160.65.44 后端WEB服务器两台:10.160.65.49/10.160.65.50 2.安装Nginx: 下载nginx-1.9.15.tar.gz,放置 ...

  4. nginx反向代理+缓存开启+url重写+负载均衡(带健康探测)的部署记录

    在日常运维工作中,运维人员会时常使用到nginx的反向代理,负载均衡以及缓存等功能来优化web服务性能. 废话不多说,下面对测试环境下的nginx反向代理+缓存开启+url重写+负载均衡(带健康探测) ...

  5. Nginx反向代理+DNS轮询+IIS7.5 千万PV 百万IP 双线 网站架构案例

    原文地址:http://www.jb51.net/article/31844.htm Nginx  ("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个 ...

  6. Nginx 反向代理、负载均衡

    ## Nginx 反向代理. (一)简介 一.什么是代理服务器 客户机原本发送给服务器的请求,不会直接发送给服务器,而是先发送给代理服务器:经过代理服务器处理后转发给服务器:服务器数据处理后转回给代理 ...

  7. Nginx反向代理解决iframe跨域问题

    前言 这几天有个需求:做个表单页面,要求后台人员能自定义发布表单,用户来填写表单.我一想,这不麦克表单有现成的吗,拿来就用!发布表单后,可以选择使用iframe方式嵌入网站,一切顺利. 当时的网站是h ...

  8. Nginx 反向代理工作原理简介与配置详解

    Nginx反向代理工作原理简介与配置详解   by:授客  QQ:1033553122   测试环境 CentOS 6.5-x86_64 nginx-1.10.0 下载地址:http://nginx. ...

  9. nginx反向代理缓存服务器的构建

    一:代理服务可简单的分为正向代理和反向代理: 正向代理:用于代理内部网络对Internet的连接请求(如VPN/NAT),客户端指定代理服务器,并将本来要直接发送给目标Web服务器的HTTP请求先发送 ...

随机推荐

  1. Linux基础指令--韩顺平老师课程笔记

    一.vi和vim编辑器 ①.三种模式 所有的 Linux 系统都会内建 vi 文本编辑器.vim 具有程序编辑的能力,可以看做是 vi 的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计. ...

  2. python入门之五种字典创建方法

    a = dict(one = 1, tow = 2, three = 3)b = {'one' :1,'tow' :2 , 'three' :3}c = dict (zip(['one', 'tow' ...

  3. python——函数的基本概念

    Python函数认识 数学定义 y = f(x), y是x的函数,x是自变量. python中的函数组成 由若干语句组成的语句块.函数名称.参数列表构成,函数是组织代码的最小单元 像一个黑盒子,我们给 ...

  4. php 开启微信公众号开发者模式

    php 开启微信公众号开发者模式<pre><?php/** * wechat php test */header('Content-type:text');//define your ...

  5. day7-字符串格式化

    msg='i am %s my hobby is %s' % ('lhf','alex') # # %代表标识,固定格式 s代表传入的为字符串,该字符串可接受任何类型 # # %d ,只能接收数字 p ...

  6. 2、linux基础-面试题

    自己写的答案 1.1GB 2.4 3.ubuntu.dbian.Fedora 4.系统.硬件.clock -w 5.文件 6.uname -a 7.centos是redhat的社区版,redhat是商 ...

  7. 本地通知-UILocalNotification

    第一步:创建本地推送 本地通知 UILocalNotification // 创建⼀一个本地推送 UILocalNotification * notification = [[UILocalNotif ...

  8. Oracle基础:数据库操作_数据库事务_表的锁定

    数据库操作语句: INSERT INTO 表名[(字段列表)] VALUES ( 表达式列表); 例子:INSERT INTO emp(empno,ename,job,hiredate) VALUES ...

  9. Python数据挖掘入门与实战PDF电子版加源码

    Python数据分析挖掘实战讲解和分析PDF加源码 链接: https://pan.baidu.com/s/1SkZR2lGFnwZiQNav-qrC4w 提取码: n3ud 好的资源就要共享,我会一 ...

  10. Cesium坐标系及坐标转换详解

    前言 Cesium项目中经常涉及到模型加载.浏览以及不同数据之间的坐标转换,弄明白Cesium中采用的坐标系以及各个坐标系之间的转换,是我们迈向三维GIS大门的前提,本文详细的介绍了Cesium中采用 ...