☆ Nginx概述
Nginx (engine x) 是一个高性能的HTTP和反向代理Web服务器,同时也提供了IMAP/POP3/SMTP等邮件服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日 => F5公司,负载均衡器(硬件)
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
bash
# curl -I 域名地址
Server:Nginx
☆ 常见用法
1) Web服务器软件 httpd(apache) 同类型web服务器软件:apache nginx(俄罗斯) iis(微软) lighttpd(德国)2) 提供了IMAP/POP3/SMTP服务3) 充当反向代理服务器,实现负载均衡功能。LB=>Load Blance
☆ Nginx特点
- ① 高可靠:稳定性 master进程 管理调度请求分发到哪一个worker=> worker进程 响应请求 一master多worker
- ② 热部署 :(1)平滑升级(不停机升级)(2)快速重载配置(不重启Nginx服务,就可以重新加载配置文件)
- ③ 高并发:可以同时响应更多的请求 事件 底层:epoll模型
- ④ 响应快:尤其在处理静态文件上,响应速度很快 sendfile
- ⑤ 低消耗:cpu和内存 1w个请求,内存2~3MB
- ⑥ 分布式支持:反向代理 七层负载均衡(应用层),新版本也支持四层负载均衡
☆ 常见安装方式
- ① yum安装配置,需使用Nginx官方源或者EPEL源(优点:安装简单,操作方便;缺点:版本相对固定,定制性特别差。)yum/glibc包(二进制软件包),相当于别人已经对源代码进行打包,生成可执行文件,根据这个可执行文件就可以实现软件安装。
- ② 源码编译(优点:定制性比较强,可以选择性开启或关闭某些功能,本身比较稳定;缺点:安装比较复杂 => 安装时间长)
☆ 编译安装Nginx
- 源码编译安装 => 获取别人开发好的软件源代码(没有打包)=> ① 基础配置(软件未来安装路径,选择要安装功能)② 编译(把配置好的源代码进行打包,生成一个可执行的二进制文件)③ 安装(把生成的可执行的二进制文件进行安装操作)
- 软件的编译安装过程:编译安装三步走(配置 + 编译 + 安装)
① 配置软件./configure
② 编译,生成可执行的软件包make
③ 安装make install
注 :源码,Linux底层都需要安装gcc!
第一步:安装依赖库
bash
yum -y install pcre-devel zlib-devel openssl-devel
openssl-devel:让Nginx可以支持https协议- http 与 https区别
-------http端口:80,传输过程没有通过ssl进行加密,明文传输,有安全隐患。早期浏览器默认使用http协议,新版本不推荐使用http协议,内部项目可以采用http。 https端口:443,需要配置ssl证书(免费,3个月要续订一次;收费,1-3年续订一次,大概1000左右一年),加密传输,数据传输过程中都会通过ssl进行加密,相对于http更加安全。
第二步:创建账号
bash
useradd -r -s /sbin/nologin www
第三步:配置/编译与安装
bash
tar xvf nginx-1.24.0.tar.gz
cd nginx-1.24.0
./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module
make && make install
编译参数说明
|--------------------------------|--------------------------------------|
| 参数 | 作用 |
| --prefix | 编译安装到的软件目录 |
| --user | worker进程运行用户 |
| --group | worker进程运行用户组 |
| --with-http_ssl_module | 支持https 需要 pcel-devel依赖 |
| --with-http_stub_status_module | 基本状态信息显示 查看请求数、连接数等 |
| --with-http_realip_module | 定义客户端地址和端口为header头信息 常用于反向代理后的真实IP获取 |
☆ Nginx目录介绍
|------|---------------------------|
| 目录 | 作用 |
| conf | 配置文件(nginx.conf) |
| html | 网站默认目录(源代码目录) |
| logs | 日志(access.log、error.log) |
| sbin | 可执行文件 [软件的启动 停止 重启 重载等] |
- Nginx比较特殊:既支持重启操作,也支持重载操作!
- 重启:停服,重新启动
- 重载:不停服,重新加载配置文件
☆ 软件操作参数
|-----------|--------------------------------------|
| 参数 | 作用 |
| -V | 显示Nginx版本号以及配置选项 |
| -s signal | stop关闭 quit优雅的关闭 reopen重开日志 reload重载 |
常用命令:
启动Nginx
bash
cd /usr/local/nginx
sbin/nginx -c /usr/local/nginx/conf/nginx.conf
强制关闭:如果有正在处理的http请求,也会立即被中断
bash
sbin/nginx -s stop
优雅关闭:如果有正在处理的http请求,先处理完成后,在关闭
bash
sbin/nginx -s quit
不停服重载:如果在Nginx运行期间,修改了nginx.conf配置文件
bash
sbin/nginx -s reload
☆ Nginx服务配置
注意:一定要提前把Nginx停止掉 sbin/nginx -s stop
bash
# Nginx服务配置到该文件中
# vim /usr/lib/systemd/system/nginx.service
[Unit]
Description=Nginx Web
Server After=network.target
[Service] Type=forking
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
# 扩展: Type=forking,forking代表后台运行
启动Nginx服务:
bash
# systemctl daemon-reload
# systemctl start nginx
设置Nginx开机启动:
bash
# systemctl enable nginx
重启Nginx:
bash
systemctl restart nginx
重载Nginx:
bash
systemctl reload nginx
关闭Nginx:
bash
systemctl stop nginx
本 篇 完 结 ... ...
持 续 更 新 中 ... ...
