设为首页 收藏本站
查看: 2316|回复: 0

[经验分享] nginx的压力测试、访问方式及加密

[复制链接]

尚未签到

发表于 2018-11-16 13:18:51 | 显示全部楼层 |阅读模式
  Nginx 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。今天我们将从多方面来对nginx来作介绍,包括诸如nginx和http的压力测试、nginx的访问方式、nginx的加密访问等
  一、安装nginx
  1、拆解并安装
  tar -zxvf libevent-2.0.16-stable.tar.gz -C /usr/local/src
  ./configure --prefix=/usr/local/libevent
  make && make install
  2、处理头文件和库文件
  库文件的处理:
  编辑/etc/ld.so.conf.d/libevent.conf,内容如下
  /usr/local/libevent/lib
  头文件的处理:
  ln -s /usr/local/libevent/include /usr/include/libevent
  3、为了让nginx支持pcre(perl库)的话还需要安装一个名为pcre的软件包
  经查看后发现已经有安装,但是有些额外的库放在名为pcre-devel的软件包内,安装该软件包
DSC0000.jpg

  4、安装配置nginx
  groupadd -r nginx
  useradd -r -g nginx -s /sbin/nologin -M nginx (-M不创建任何家目录)
  tar -zxvf nginx-1.0.11.tar.gz -C /usr/local/src
  cd /usr/local/src/ nginx-1.0.11
  ./configure \
  --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/nginx.pid \
  --lock-path=/var/lock/nginx.lock \
  --user=nginx \
  --group=nginx \
  --with-http_ssl_module \
  --with-http_flv_module \
  --with-http_stub_status_module \
  --with-http_gzip_static_module \
  --http-client-body-temp-path=/var/tmp/nginx/client/ \
  --http-proxy-temp-path=/var/tmp/nginx/proxy/ \
  --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \
  --with-pcre (获得pcre的支持)
  make && make install
  5、启动nginx
  cd /usr/local/sbin
  ./nginx -t (测试语法)
DSC0001.jpg

  新建目录之后再做测试
DSC0002.jpg

  开启服务
DSC0003.jpg

  访问测试
DSC0004.jpg

  6、配置环境变量,可以在其它目录下直接输入命令开启服务
  PATH=$PATH:/usr/local/nginx/sbin
  二、http的安装
  1、安装
  rpm -ivh /mnt/cdrom/Server/httpd-2.2.3-31.el5.i386.rpm
  2、开启http服务并生成访问页面(为了和nginx作对比这里最好用同样的页面访问
  service httpd strart
  3、访问
DSC0005.jpg

  三、ab测压
  如何测试APACHE的性能,有一个测试工具,就是APACHE自带的测试工具AB(apache benchmark).在APACHE的bin目录下。
  格式: ./ab [options] [http://]hostname[:port]/path
  参数:
  -n requests Number of requests to perform
  //在测试会话中所执行的请求个数。默认时,仅执行一个请求
  -c concurrency Number of multiple requests to make
  //一次产生的请求个数。默认是一次一个
  1、http测试:
  测试1:
DSC0006.jpg

DSC0007.jpg

  测试2:
DSC0008.jpg

  2、nginx测试
  关闭http,开启nginx
DSC0009.jpg

  测试1:
DSC00010.jpg

DSC00011.jpg

  测试2:
DSC00012.jpg

DSC00013.jpg

  可以发现:http在接受过多的请求时会挂掉,但是nginx却在比http接受更多的请求时表现的更加出色,但是唯一不好的就是nginx不稳定
  四、访问方式
  1、虚拟主机(基于ip地址的访问)
  1)、我们要分别实现技术部站点和主站点的访问
  ifconfig eth0:0 192.168.2.101 (访问技术部站点的地址)
  2)、为技术部站点新建目录和网页
  mkdir /usr/local/nginx/tec
  cd /usr/local/nginx/tec
  echo "welcome to tec" >index.html
  3)、编辑配置文件
  vim /etc/nginx/nginx.conf
DSC00014.jpg

  把server内容进行拷贝,再做修改,形成对tec站点的配置
DSC00015.jpg

  4)、启动服务,访问测试
  测试语法
DSC00016.jpg

  重启服务
DSC00017.jpg

  依次访问主站点和技术部站点
DSC00018.jpg

DSC00019.jpg

  2、基于主机头的访问
  修改配置文件
DSC00020.jpg

DSC00021.jpg

  关闭一个ip地址,并测试环境做地址解析
  ifconfig eth0:0 down (关闭p地址)
  在C:\WINDOWS\system32\drivers\etc目录下编辑hosts文件,添加下面内容
DSC00022.jpg

  重启服务,进行访问测试
DSC00023.jpg

DSC00024.jpg

  3、虚拟目录
  基于虚拟目录的访问,最后实现访问http://www.abc.com/mail,实际上是访问安装目录下的abc目录
  cd /usr/local/nginx/
  mkdir abc
  cd abc
  echo "mail" >index.html
  vim /etc/nginx/nginx.conf
DSC00025.jpg

  重启服务
  访问出错
DSC00026.jpg

  上边的出错是因为别名记录的路径问题,作出修改,如下图
DSC00027.jpg

  再次访问
DSC00028.jpg

  五、站点安全
  1、https
  https是实现web安全的一种有效的方式,如下图所示:
DSC00029.png

  客户端以https方式访问web服务器,服务器端向客户端出示证书,客户端会对证书进行是否在有效期、是否信任颁发机构以及持有者标识是否与请求的标识是否唯一。当证书验证通过后,客户端浏览器会随机产生K值,再用公钥加密K值并传到web服务器端 ,在服务器端把自己的私钥打开K值。这样一来,服务器端和客户端都有了K值,双方就可以利用K值来加密数据进行交流了。
  2、实现CA的方式好一种,下面我们来做一下介绍:
  当CA与web服务器不在同一台机器上,有两种做法:
DSC00030.png

  1)、在线注册
  CA端本身也是一个web服务器(windows主机可以做到),web server端通过http访问CA端,把请求输入到CA端,CA端进行审核,审核完成后把证书放到ftp上,server端从CA的ftp上下载就行了。
  2)、CA用linux来实现,linux系统可以通过openca来实现,但是这种方式实现起来太复杂了,我们可以以简单的openssl来替代,只不过openssl的CA端与web server端通常在同一台机器上。但是如果不在同一台机器上,我们也可以实现。首先在web server端把请求做好,通过网络上传到CA端,让CA进行签署,之后把证书放到ftp,web server端再把证书下下来就行了。
  3、当然除了CA和web server在不同主机上,还有CA与web server在同一台主机上的形式,下面以CA与web server在同一台主机上openssl建立CA方式为大家做讲解:
  编辑配置文件
  1)、vim /etc/pki/tls/openssl.cnf
DSC00031.jpg

DSC00032.jpg

DSC00033.jpg

  2)、/新建CA需要的目录和文件
  cd /etc/pki/CA
  mkdir crl certs newcerts (分别为存放证书吊销列表、存放证书和存放新证书的三个目录)
  touch index.txt serial (分别为数据库索引文件和序列号文件)
  echo "01" >serial (为序列号文件赋初始值)
  产生CA自己的私钥和证书文件
DSC00034.jpg

  chmod 600 private/cakey.pem (私钥需要严格保管,故修改私钥文件权限)
  生成证书文件
DSC00035.jpg

  3)、web server要想拥有证书,首先要有请求文件,而想要拥有请求文件要先产生私钥。
  生成一个目录用于存放web server需要的三个文件
  mkdir -pv /usr/local/nginx/certs
  cd /usr/local/nginx/certs
DSC00036.jpg

  chmod 600 nginx.key
  产生证书文件
DSC00037.jpg

  4)、把上边产生的三个文件和
  vim /etc/nginx/nginx.conf
  把文件https的内容复制并作修改
DSC00038.jpg

  拷贝上边内容,然后修改
DSC00039.jpg

  重启服务并查看
  ./nginx -s stop
  ./nginx
DSC00040.jpg

  发现http服务的端口和https的服务端口都打开了
  4、证书的安装
  1)、访问技术部站点
DSC00041.jpg

DSC00042.jpg

DSC00043.jpg

DSC00044.jpg

  发现站点信息未通过加密,客户端并不信任颁发机构,反言之,如果客户端信任颁发机构,则就会信任颁发机构颁发的证书。
  2)、把CA机构的证书和服务的证书进行合并
  cd /usr/local/nginx/certs/
  cp /etc/pki/CA/cacert.pem ./
  备份服务器证书
  mv nginx.cert nginx.cert.bak
  合并证书
  cat nginx.cert.bak cacert.pem >nginx.cert
  3)、重启服务,再次访问技术部站点
  cd /usr/local/nginx/sbin/
  ./nginx -s stop
  ./nginx
DSC00045.jpg

DSC00046.jpg

DSC00047.jpg

DSC00048.jpg

  再次访问,发现已经成功实现了验证
DSC00049.jpg



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-635843-1-1.html 上篇帖子: nginx搭建https单向证书 下篇帖子: nginx禁止ip直接访问
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表