目录
目录
前言
Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的http://Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。 其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
一、概述
1.功能
web服务
反向代理
负载均衡
缓存服务(不讲解)
2.优势
并发高,单机并发高达50000
3.监听端口
80/tcp
4.网站模型
epoll
二、安装
(一)、yum安装
1.基础环境配置
yum保持软件包缓存
vim /etc/yum.conf
keepcache=1
systemcetl stop firewalld && systemctl disable firewalld
systemcetl stop NetworkManager && systemctl disable NetworkManager
setenforce 0
配置静态IP地址(192.168.127.11/24)
连通性测试ping www.baidu.com
2.安装
vim /etc/yum.repos.d/nginx.repo(官方高版本)
查看指定软件所有可安装版本
yum list nginx --showduplicates
下载指定版本软件包(yum upgrade nginx-1.22.0 --downloadonly)
三、目录结构
rpm -ql nginx | 查看nginx安装后生成的目录及文件 |
/etc/nginx/ | Nginx安装主目录 |
/usr/bin/ | Nginx更新命令 |
/usr/sbin/ | Nginx启动命令 |
/usr/share/nginx/ | 网页文档根目录 |
/var/lib/nginx | 缓存和临时文件 |
/var/log/nginx/ | 日志文件 |
nginx-upgrade | 更新命令 |
nginx-c | nginx启动时指定配置文件位置 |
nginx-s stop | 停止服务 |
nginx-s reload | 不停止服务,平滑加载配置文件 |
nginx-t | 测试配置文件并返回信息 |
四、主配置文件
/etc/nginx/nginx.conf | |
user nginx | 运行用户 |
worker_processes | 进程数量 |
error_log | 错误日志 |
pid | 进程ID |
include | 引用其他文件到当前文件 |
events { worker_connections } | 定义每个工作进程的最大连接数 |
worker_processes 1; events { worker_connections 1024} | 那么最大连接数就是 1024*1/2 |
http | web网站配置块 |
log_format | 日志格式配置 |
access_log | 访问日志路径 |
include /etc/nginx/mime.types | 支持的文件解析类型 |
server | 定义web站点配置 |
listen | 监听端口 |
server_name | 域名 |
location | 指定访问的路径及默认文档 |
root | 访问文档根目录 |
index | 默认文档 |
(二)、编译安装
1.解压
已有的解压包解压到家目录tar -xf nginx-1.18.0.tar.gz
cd nginx-1.18.0
2.自定义安装
./configure --prefix=/usr/local/nginx
yum install -y 解决依赖(-devel)
make&&make install
3.配置nginx
vim /usr/local/nginx/conf/nginx.conf
监听,访问日志,网页访问路径
4.配置网页文件(默认)
cd /var/www/html
编辑文件vim index.html
为优化命令启动
cd /usr/local/nginx/sbin/
./nginx
五、配置
1.单网站配置
启动nginx即可
2.虚拟主机配置
基于不同端口(需联网)
cd /etc/nginx/conf.d
cp default web
vim web.conf
文件更改为web.conf
vim nginx.conf注释掉
cd /usr/share/nginx/html/
mkdir web
echo 12345 > web/index.html
基于不同IP地址
基于不同域名
3.SSL加密配置
加密类型 | |
对称加密 | 秘钥相同,不安全 |
非对称加密 | |
公钥 | 所有人都可以知道,用来对使用对等私钥加密的数据进行解密 |
私钥 | 只有自己知道,用来对使用对等公钥加密的数据进行解密 |
数据加密 | 使用公钥加密,保证数据一致性(完整性) |
数字签名 | 使用私钥加密,保证发送者的确定性 |
4.SSL概述
网景公司(Netscape)设计的主要用于Web的安全传输协议
安全套接字:secure socket layer
通过证书来实现
证书颁发机构(CA),PKI认证
传输过程 | 首先发送数字证书,获取到可信的public key |
通过public key发送对称秘钥,接收方用私钥解密 | |
通信双方使用仅仅对方可知的对称秘钥进行加密传输 |
在https协议中的监听端口 443/tcp
https的特点 | 通过数字证书确认服务器身份,获知服务器公钥 |
将对称加密密钥通过非对称进行传输沟通 | |
之后的通信过程采取对称加密 |
5.openssl命令
genrsa | 生成私钥文件 |
-out | 指定生成的证书请求或者自签名证书名称 |
req | 用来生成自签证书 |
-new | 说明生成证书请求文件 |
-key | 指定已有的秘钥文件生成秘钥请求,只与生成证书请求选项-new配合 |
x509 | 说明生成自签名证书 |
-req | 用来生成自签证书 |
-in | 读取文件 |
-signkey | 读取私钥文件 |
-days | 有效期,天 |
6.证书生成
yum安装
mkdir -p /etc/pki/nginx/private
生成私钥文件(包含公钥和私钥)
cd /etc/pki/nginx/private
openssl genrsa -out nginx.key
生成证书请求文件
openssl req -new -key nginx.key -out nginx.csr
生成证书
openssl x509 -req -days 3650 -in nginx.csr -signkey nginx.key -out nginx.crt
nginx配置SSL
/etc/nginx/conf.d/
总结
本篇文章是对Nginx的简单介绍,更多的内容需要小伙伴们去探索,废话不多说动起来。