一、Nginx简介
Nginx是由C语言开发(不是C++),并且开源。
Nginx号称百万级别的TCP连接,非常稳定,热部署(运行的时候能升级),高度模块化设计,自由许可证。
高并发:Linux epoll技术,Windows IOCP(完成端口)技术
二、Apache和Nginx比较
参考博客:Apache和Nginx比较
三、为什么选择Nginx
单机10万并发(普通的可能1000左右就开始出现丢包和网络延迟),而且同时能够保持高效的服务,epoll这种高并发的好处就是:高并发只是占用更多的内存就能做到。
内存池,线程池,进程池,事件驱动等等。
四、安装Nginx,搭建Web服务
1. 安装前提
- epoll,linux 内核版本为2.6或者以上。
uname -a //查看内核版本
- gcc编译器,g++编译器
- pcre库:函数库;支持解析正则表达式
sudo apt-get install libpcre3-dev
- zlib库:压缩、解压缩
sudo apt-get install libz-dev
- openssl库:ssl功能相关库,用于网站加密通讯
sudo apt-get install libssl-dev
2. Nginx源码下载及目录结构简单认识
1. 官网下载
nginx下载地址: http://nginx.org/en/download.html
分为:主线版本,稳定版本,旧版本,一般建议下载稳定版本。
选择好下载的版本后,如果有浏览器可以直接点击下载,如果在终端可以选择命令下载:
1. 新建一个目录,并且进入
mkdir NginxCode
2. 进入目录后下载(下载地址:可以从官网复制地址(稳定版))
wget http://nginx.org/download/nginx-1.18.0.tar.gz
2. 下载后解压缩
tar -zxvf nginx-1.18.0.tar.gz
解压成功
进入到解压出来的nginx目录,可以看到有哪些文件:
3. 目录介绍
目录 | 简单介绍 |
---|---|
auto | 编译相关的脚本,可执行文件configue |
auto/cc | 检查编译器的脚本 |
auto/lib | 检查依赖库的脚本 |
auto/os | 检查操作系统类型的脚本 |
auto/type | 检查平台类型的脚本 |
CHANGES | 修复的bug,新增的功能说明 |
CHANGES.ru | 俄语版 CHANGES |
conf | 默认的配置文件 |
configure | 编译nginx之前必须执行本脚本以生成一些必要的中间文件,类似.bat批处理 |
contrib | 脚本和工具,典型的是vim高亮工具 |
html | 欢迎界面和错误界面相关的html文件 |
man | nginx帮助文件目录 |
src | nginx 源码目录 |
src/core | 核心代码 |
src/event | event(事件)模块相关代码 |
src/http | http(web服务)模块相关代码 |
src/mail | 邮件模块相关代码 |
src/os | 操作系统相关代码 |
src/stream | 流处理相关代码 |
3. Nginx编译和安装
./configure --help //查看帮助文档
执行以下命令开始安装
./configure //默认安装路径 /usr/local/nginx //可自行指定路径
安装成功之后,使用make命令进行编译,如果没有安装make可自行安装(sudo apt install make)
make
编译完成之后可进入 objs 目录下查看生成的nginx可执行文件。
用make命令开始安装
sudo make install
安装成功后可进入 /usr/local/nginx 目录下进行查看
五、Nginx的启动和简单使用
查找含有nginx字样的进程。
ps -e | grep nginx //ps 查看正在运行的进程,全部列出来 | 管道符 grep 查找命令
1. 启动
sudo /usr/local/nginx/sbin/nginx //进入安装目录启动
可以看到启动成功后,多了两个进程
查看启动后是否正常工作
此时,在浏览器中直接输入Linux 主机 ip地址(192.168.0.126)便可访问nginx:
2. 关闭
- 直接杀掉master进程**(一般不这么做)**,如果杀掉的是worker进程,master重新启动一个worker进程。
sudo kill master进程ID
- 优雅退出(建议)
sudo ./usr/local/nginx/sbin/nginx -s quit //当前还包含stop退出