Nginx服务器
Nginx服务器
nginx能处理负载重的网站,包括yandex。netflix
相比于apache,nginx支持更少的资源,更多的并发连接,更高的效率
安装简单,配置文件简洁,bug少
Nginx特性
1、使用可拓展的事件驱动架构,占用资源少
2、性能极佳
3、安装简单
Nginx架构
处理并发连接的传统模式:产生一个新的线程,分配堆栈内存,以及创建新的执行上下文。会比较消耗资源。
nginx使用大量的复用和事件通知,并专门用于分离进程的特定任务,连接在单线程中高效进行和循环处理。
Nginx代码架构
nginx工作码包括核心和功能模块。
核心模块:维护严格的运行循环,并在处理请求的每个阶段执行模块代码的适当部分。
nginx的模块化架构通常允许开发人员扩展一组Web服务器功能,而无需修改nginx内核。
Nginx工作模式
nginx不会为每个连接生成一个进程或者线程,工作worker来自于共享listen的新请求
Nginx安装
在Linux上进行安装:nginx.org
-----------------------------------------------------
在FreeBSD上安装:在FreeBSD上,可以从包或通过ports系统安装nginx。
----------------------------------------------------
编译安装(兼容性超级好,但是略有复杂):
以CentOS为例:
---------------
1.更新系统
yum update yum upgrade
---------------
2.安装依赖
yum -y install gcc gcc-c++ autoconf automake libtool make cmake
yum -y install zlib zlib-devel openssl openssl-devel pcre-devel
-------------------
3.下载Nginx
官网下载:http://nginx.org/en/download.html
直接使用命令
cd /usr/local/src
wget -c http://nginx.org/download/nginx-1.10.3.tar.gz
4.安装Nginx
(1)解压:
tar -zxvf nginx-1.10.3.tar.gz
(2)新建给nginx使用的用户和组
group add nginx useradd -g nginx -M nginx
# ( -M 不建立home目录)
#修改/etc/passwd的参数,使得nginx用户无法进行bash登录,把nginx用户后面的 /bin/bash 改为 /sbin/nologin
vi /etc/passwd nginx:x:1002:1003::/home/nginx:/sbin/nologin
(3)开始进行编译安装
cd /usr/local/src/nginx*
pwd
./configure \
--prefix=/usr/local/nginx \
--pid-path=/usr/local/nginx/run/nginx.pid \
--with-http_ssl_module \
--user=nginx \
--group=nginx \
--with-pcre \
--without-mail_pop3_module \
--without-mail_imap_module \
--without-mail_smtp_module
make
make install
make test
(4)查看安装后的版本
/usr/local/nginx/sbin/nginx -v
5.调试及配置Nginx
(可选)修改默认端口:
vi /usr/local/nginx.conf
找到listen 80 改为listen 8080
检查配置是否合法:
/usr/local/sbin/nginx -t
1).启动nginx,查看进程
/usr/local/nginx/sbin/nginx ps -ef | grep nginx
2).nginx管理的几种方式
启动:/usr/local/
退出nginx的几种方式:
从容停止nginx:kill -QUIT [主进程号]
快速停止nginx:kill -TERM 主进程号
强制停止nginx:pkill -9 nginx
平滑重启nginx:/usr/nginx/sbin/nginx -s reload
3).进行验证,使用curl访问local host进行测试
Nginx的快速入门:
1.启动、停止和重载
nginx -s [signal]
其中signal的可能为:
stop \ quit \ reload \ reopen(重新打开日志文件)
Nginx的配置方法
1.配置文件的解析
配置文件由指令控制的模块组成
树状结构,大指令包含小指令:
小指令由 ; 号结束
大指令由 { } 结束
一般的配置内容应该都能看懂,这里不再进行说明。
2.反向代理
反向代理是将流量通过nginx移交给本地的某个服务器或者外网的某个服务器进行处理。
反向代理的语法是这样的:
location / {
proxy_pass http://172.17.0.8888;
}