Nginx学习笔记(1)
注:仅个人学习使用
1.nginx基本概念
①什么是nginx,能干什么
nginx是一个高性能的HTTP和反向代理web服务器,同时也提供IMAP/POP3/SMTP服务。特点是占有内存少,并发能力强,同类型的网页服务器中表现较好。
nginx专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率,能经受高负载的考验,能支持高达50000个并发连接数。
②反向代理
代理:用户依赖代理服务器进行网络访问。
正向代理 代理的客户端
客户端(浏览器)配置代理服务器,通过代理服务器进行互联网访问。
正向代理隐藏了请求客户端。
反向代理 代理的服务端
用户将请求发送到反向代理服务器,有反向代理服务器去选择目标服务器获取数据,在返回给用户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理,隐藏了真实服务器的ip地址。
- 10086客服电话,并不关心对方是谁,关心的是问题能否解决。
两者的区别在于代理的对象不一样:正向代理代理的对象是客户端,反向代理代理的对象是服务端。
③负载均衡
不去提升服务器性能,而是增加服务器数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,讲负载分发到不同的服务器,也就是所说的负载均衡。
④动静分离
加快网站的解析速度,将动态页面和静态页面由不同的服务器来解析,加快解析速度,降低原来单个服务器的压力。
2.nginx安装,常用命令和配置文件
①在linux系统中安装nginx
官网:http://nginx.org
下载nginx安装包
需要依赖
- pcre-8.37.tar.gz
- openssl-1.0.1t.tar.gz
- zlib-1.2.8.tar.gz
- nginx-1.11.1.tar.gz
第一种方式安装
1.将win下的pcre安装包通过连接软件放入centos中
2.解压压缩文件
tar -xvf pcre-8.37.tar.gz
3.进入解压之后的目录
# cd pcre-xxxxxxx
# ./configure
4.使用make &&make install
编译并安装
5.查看版本号:
#pcre-config --version
第二种安装方式
1.其他依赖
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
安装nginx
同pcre的操作步骤
安装成功之后,在/usr(安装路径文件夹)多出来一个文件夹/local/nginx,在/nginx中有sbin启动脚本。
#cd /usr/local/nginx/sbin
#./nginx 启动
#ps -ef | grep nginx 看看
浏览器访问输入ip地址访问,可能无法访问,
此时
# systemctl stop firewalld
# setenforce 0
或者加入端口
# firewall-cmd --list-all
# firewall-cmd --add-port=80/tcp --permanent
# firewall-cmd --reload
设置开放端口
# setenforce 0
②nginx常用命令
- 使用nginx操作命令前提条件,必须进入nginx的目录
# cd /usr/local/nginx/sbin
1.查看nginx的版本号
# ./nginx -v
2.启动nginx
# ./nginx
3.停止nginx
# ./nginx -s stop
4.查看状态
# ./ps -ef | grep nginx
5.重新加载nginx
# ./nginx -s reload
③nginx配置文件
1.配置文件所在位置
/usr/local/nginx/conf/nginx.conf
2.nginx配置文件组成
(1)全局块
从配置文件开始到events块之间的内容,主要会设置一些影响nginx服务器整体运行的配置指令,主要包括配置运行nginx服务器的用户(组),允许生成的worker process(工作进程)数,进程PID存放路劲,日志存放路径和类型以及配置文件的引入等。
worker_process 1;
这是nginx服务器并发处理服务的关键配置,worker_process值越大,可以支持的并发处理量也越多,但是会受到硬件、软件等设备的制约。
(2)events块
events块涉及的指令主要影响nginx服务器与用户的网络连接,常用的设置包括是否开启对多work process下的网络连接进行序列化,是否允许同时接受多个网络连接,选取哪种事件驱动模型来处理连接请求,每个work process 可以同时支持的最大连接数等。
这部分配置对nginx的性能影响较大,在实际中应该灵活配置。
worker_connections 1024;
每个work process支持的最大连接数为1024
(3)http块
nginx服务器中配置最频繁的部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里。同时http块,也可以包括http全局块,server块
(3.1)http 全局块
http全局块配置的指令包括文件引入,MIME-TYPE定义、日志自定义、连接超时时间、单链接请求数上限等。
(3.2)server块
这块和虚拟主机有密切关系,虚拟主机从用户角度看,和一台独立的硬件主机是完全一样的,该技术的产生是为了节省互联网服务器硬件成本。