Nginx那些事儿

Nginx这大哥近些年可谓是顺风顺水,Nginx逐步进入高速发展的时期,从各类主流的IT媒体到各大著名的IT论坛,我们不时能够看到它的身影。
阿雨总结了一些为啥这老哥能够出人头地的几个主要原因,如有偏差,轻点喷啊!
Nginx的成功要归功于以下几点

  • 在设计之初就已经形成的不同于其他同类产品的设计理念和架构体系。
  • 功能强大,操作简单
  • 开源啊(铁子,这点很重要啊)


这哥们就是创始人(阿雨感觉还没我帅,不过他是真牛)


那么阿雨就来简单解释以下这几点
##设计理念和架构体系##
我估计当初Nginx创始人和他的团队应该是想,"MD,现在市场不好干啊,而且大多都让apache这小子抢走了,我也不能干看着啊,我得来点绝活,整个他解决不好的问题。“ 于是这帮人就说,”老大,要不咱么开源吧,apache他不是解决高并发解决的不太好吗,咱就整这个。“他们这帮人头脑清醒,逻辑缜密,刚开始的想法就成就了现在的高度,当然啊,他们技术是没得说啊!
在这里插入图片描述
功能强大,操作简单
Nginx这哥们是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。
老N特点是这么多:

  • 稳定性高、丰富的功能集

  • 示例配置文件和低系统资源的消耗

  • 高性能Web和反向代理服务以及负载均衡
    (一)老N稳定性高是肯定的,
    代码完全用C语言从头写成,已经移植到许多体系结构和操作系统,包括:Linux、FreeBSD、Solaris、Mac OS X、AIX以及Microsoft Windows。Nginx有自己的函数库,并且除了zlib、PCRE和OpenSSL之外,标准模块只使用系统C库函数。而且,如果不需要或者考虑到潜在的授权冲突,可以不使用这些第三方库,你说它高不?
    (二)功能集丰富也是不可避免的:
    支持操作系统多,啥Linux,Solaris,windows等他都行,都快来者不拒了。
    邮件代理服务器功能
    HTTP基础功能太强啦在这里插入图片描述
    (三)示例配置文件这就不详细介绍了,感觉没啥说的
    (四)低系统资源消耗
    一个主进程和多个工作进程。工作进程是单线程的,且不需要特殊授权即可运行;
    (五)高并发
    这可是老N的过人之处,apache都没整明白,他研究挺好
    老N启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动,你还能够不间断服务的情况下进行软件版本的升级。

    感受一下老N做的东西你就知道他认真了
    读写分离,分布式部署(不同模块),集群(相同服务),数据库优化,优化代码(如算法),硬件升级(CPU,内存,SSD等)


#!@¥%……&()#######一条帅气的分割线########!@#¥%……&()
可能会有一些同鞋想要了解一下Nginx的基本操作,那阿雨就来说一哈
在这里插入图片描述
阿雨就给大家说一下三大点吧!

  • 安装
  • 负载均衡
  • 缓存管理

安装

nginx本人建议源码编译安装,因为能自主定义配置啊

	源码编译安装nginx :
1.解压:
	# tar  -xf  nginx-1.10.3.tar.gz
2.进入目录下:
	# cd  nginx-1.10.3
3.执行./configure
	# ./configure           \
	> --user=nginx           \
	> --prefix=/usr/local/nginx  \
	> --group=nginx       \
	> --with-http_ssl_module (加载加密模块)
	
	创建用户nginx :
	# useradd  nginx 
	安装支持加密的依赖:
	# yum -y  install  openssl-devel 
4.编译并安装:	
	# make  && make  install 
                                   #make clean //重新配置
                                      #make  upgrade   //升级配置

管理
启动:
# /usr/local/nginx/sbin/nginx
停止:
# /usr/local/nginx/sbin/nginx -s stop
重新加载:
# /usr/local/nginx/sbin/nginx -s reload
查看版本信息:
# /usr/local/nginx/sbin/nginx -V

创建软链接:
	# ln -s  /usr/local/nginx/sbin/nginx  /sbin

查看nginx的端口:80
	# netstat  -anuplt | grep nginx 

缓存管理

查看nginx的pid
#ps -aux | grep nginx
PID的存放位置
#cat /usr/local/nginx/logs/nginx.pid
//强制杀死
#kill -9 PID
优雅的杀死:
信号:kill -信号选项 nginx的主进程号
-9 ;根据pid强制结束进程
HUP:改变配置文件,平滑的重读配置文件
USR1: 重读日志文件
USR2:平滑的升级
QUIT:等请求结束后在关闭
WINCH:关闭旧进程
#kill -QUIT cat nginx.pid ……输出结果
日志管理:
#access_log logs/host.access.log main;
说明改server的访问日志在host.access.log 使用的格式’main’

什么是main格式?
#log_format main '$remote_addr - r e m o t e u s e r [ remote_user [ remoteuser[time_local] “KaTeX parse error: Expected 'EOF', got '#' at position 16: request" ' #̲ …status b o d y b y t e s s e n t " body_bytes_sent " bodybytessent"http_referer” ’
# ‘“ h t t p u s e r a g e n t " " http_user_agent" " httpuseragent""http_x_forwarded_for”’;

 远程IP-远程用户/用户时间-请求方法-状态-请求体body的长度-referer的来源信息

###########################################
日志切割脚本思路
主配置文件–>重启nginx–>创建.log文件要与主配置文件路径相符–>访问8000端口 -->日志自动更新
–>写脚本–>执行脚本–>crontanb -e 写入 01 02 * * * sh /usr/local/nginx/logs/baqian/jiaoben.sh

负载均衡

这个就拿虚拟机来举例了,不懂可以评论,阿雨会第一时间回复
需要三台虚拟机:
其中一台作为master,另外两台作为后端服务器
master-01 ,master-02
配置:
1.三台之间相互ping通主机名也能ping通
2.关闭防火墙,关闭selinx

master:
      1.配置网络yum源
      2.安装lnmp环境
      3.直接做01和02的代理服务器,且进行轮转
         01权重为2,	02权重为1
master-01:
      1.配置本地yum源
      2.配置lamp
master-02:
      1.配置本地yum源
      2.配置lamp

建立一个集群
webserver{ A 192.168.203.125
B 192.168.203.124}
写在配置文件中

master1 IP 192.168.203.127
master1 IP 192.168.203.125
master IP 192.168.203.124
在这里插入图片描述
如果有哪里不会的可以随时评论,可以一起讨论解决问题
所有的伟大,都于孤独中诞生

你若盛开,芳香自来

我是阿雨,一起加油。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值