目录
前言
一、概述
二、安装
三、目录结构
四、命令
五、主文件配置
六、配置
七、SSL加密配置
练一练
练习一
练习二
在Linux中,Nginx是一个轻量级的、高性能的HTTP服务器和反向代理服务器。它的主要作用是处理网络流量和请求的分发。
以下是Nginx在Linux中的一些主要作用:
1. 静态网页服务器:Nginx可以作为一个静态网页服务器,快速地提供HTML、CSS、JavaScript等静态文件给客户端浏览器。
2. 反向代理服务器:Nginx可以作为反向代理服务器,将客户端请求转发给后端的多个服务器集群,实现负载均衡和高可用性。
3. 动态内容缓存:Nginx可以缓存动态生成的内容,避免重复的计算和数据库查询,提供更高的响应速度和更低的服务器负载。
4. SSL/TLS终端代理:Nginx支持SSL/TLS协议,可以作为SSL/TLS终端代理,对客户端和后端服务器之间的通信进行加密和解密,提供安全的通信通道。
5. 负载均衡器:Nginx可以根据预设的负载均衡算法,将客户端请求分配到多个后端服务器,实现请求的分发和资源的优化利用。
6. WebSocket支持:Nginx可以代理WebSocket连接,提供实时通信功能,使得网页应用程序可以实时地与服务器进行双向通信。
7. URL重写和重定向:Nginx可以根据预设的规则对URL进行重写和重定向,实现更友好的URL结构和页面引导。
总的来说,Nginx在Linux中可用于构建高性能的、可扩展的网络架构,提供快速、安全和可靠的网络服务。
概述 功能: web服务 、反向代理 、负载均衡 、 缓存服务
它的网站模型是 epoll
优势:并发高,单机并发高达50000
监听端口: 80/tcp
1)基础配置
关闭防火墙 systemcetl stop firewalld && systemctl disable firewalld
关闭SELinux setenforce 0
关闭NetworkManager systemcetl stop NetworkManager && systemctl disable NetworkManager
配置IP地址并重启服务
连通性测试 ping
2)设置保存缓存并配置yum源
设置保存缓存vim /etc/yum.conf 修改Keepcache=1
清除之前的缓存yum clean all 生成我们修改后的缓存yum makecache fast
输入 yum list nginx --showduplicates查看指定软件所有可安装版本
查找NGINX的安装包 yum list |grep nginx
基于之前生成的缓存我们进去查看cd /var/cache/yum/x86_64/7/nginx-stable/packages/发现我刚才生成的缓存安装包把它移动到家目录
安装完之后查看nginx安装后生成的目录及文件 rpm -ql nginx
/etc/nginx/ Nginx安装主目录
/usr/bin/ Nginx更新命令
/usr/sbin/ Nginx启动命令
/usr/share/nginx/ 网页文档根目录
/var/lib/nginx 缓存和临时文件
/var/log/nginx/ 日志文件
命令
nginx-upgrade 更新命令
nginx启停命令
选项 -c nginx启动时指定配置文件位置
-s stop 停止服务
-s reload不停止服务,平滑加载配置文件
-t 测试配置文件并返回信息
主配置文件 vim /etc/nginx/nginx.conf
user nginx; 运行用户
worker_processes进程数量
error_log错误日志
pid 进程ID
include 引用其他文件到当前文件
events { worker_connections }定义每个工作进程的最大连接数
http{}web网站配置块
log_format 日志格式配置
access_log 访问日志路径
include /etc/nginx/mime.types; 支持的文件解析类型
server { } 定义web站点配置
listen 监听端口
server_name 域名
location 指定访问的路径及默认文档
root 访问文档根目录
index 默认文档
1.单网站配置:启动nginx即可
2.虚拟主机配置
1)基于不同端口
2)基于不同IP地址
3)基于不同域名
一、 加密类型
1.对称加密:秘钥相同,不安全
2.非对称加密
1)公钥
所有人都可以知道,用来对使用对等私钥加密的数据进行解密
2) 私钥
只有自己知道,用来对使用对等公钥加密的数据进行解密
3)数据加密
使用公钥加密,保证数据一致性(完整性)
4)数字签名
使用私钥加密,保证发送者的确定性
二、SSL概述
1. 网景公司(Netscape)设计的主要用于Web的安全传输协议。
安全套接字 secure socket layer
通过证书来实现
证书颁发机构(CA),PKI认证
传输过程
1)首先发送数字证书,获取到可信的public key
2)通过public key发送对称秘钥,接收方用私钥解密。
3)通信双方使用仅仅对方可知的对称秘钥进行加密传输
在https协议中的监听端口 443/tcp
https的特点
1) 通过数字证书确认服务器身份,获知服务器公钥
2)将对称加密密钥通过非对称进行传输沟通
3)之后的通信过程采取对称加密
2.openssl命令
genrsa:生成私钥文件
-out :指定生成的证书请求或者自签名证书名称
req:用来生成自签证书
-new :说明生成证书请求文件
-key :指定已有的秘钥文件生成秘钥请求,只与生成证书请求选项-new配合。
x509 :说明生成自签名证书
-req:用来生成自签证书
-in:读取文件
-signkey:读取私钥文件
3.证书生成
mkdir /etc/pki/nginx/private -p
1) 生成私钥文件(包含公钥和私钥)
cd /etc/pki/nginx/private
openssl genrsa -out nginx.key
查看私钥文件:openssl rsa -in nginx.key -text
2)生成证书请求文件
cd /etc/pki/nginx
openssl req -new -key ./private/nginx.key -out nginx.csr
3)生成证书
cd /etc/pki/nginx
openssl x509 -req -days 3650 -in nginx.csr -signkey ./private/nginx.key -out nginx.crt
4) 查看证书:
openssl x509 -req -days 3650 -in nginx.csr -signkey ./private/nginx.key -text
4.nginx配置SSL
nginx.conf中去掉ssl配置注释,修改证书请求文件及证书文件的名称。
5.测试
https://192.168.115.132
在上述的环境下我们已经安装了nginx,现在我们设置一个192.168.73.22 端口为81 域名为www.hy.com并写入相信自己
1)vim /etc/nginx/nginx.conf编辑主配置文件把访问文件注释
2)配置虚拟机主机头cd /etc/nginx/conf.d/
利用左边的模版文件default.conf我们cp -p default.conf hy之后vim hy 编辑虚拟主机头
:编辑端口,添加别名,取消日志的注释,设置访问文件的路径
3)对网页进行编辑cd /usr/share/nginx/html
4)重启服务systemctl restart nginx
5)打开客户机进行访问
yum安装设置证书
1)mkdir /etc/pki/nginx/private -p递归创建目录
2)进入cd /etc/pki/nginx/private并且生成私钥文件(包含公钥和私钥)openssl genrsa -out nginx.key3)生成证书请求文件 openssl req -new -key ./private/nginx.key -out nginx.csr
4)生成证书openssl x509 -req -days 3650 -in nginx.csr -signkey ./private/nginx.key -out nginx.crt
查看证书:openssl x509 -req -days 3650 -in nginx.csr -signkey ./private/nginx.key -text
5)编辑vim /etc/nginx/conf.d/default.confzaiwenmo在文末输入(路径不要写错了)
server {
listen 443 ssl;
server_name www.hy.com;
ssl_certificate /etc/pki/nginx/private/nginx.crt;
ssl_certificate_key /etc/pki/nginx/private/nginx.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root /usr/share/nginx/html/hy/;
index index.html index.htm;
}
}
6)重启服务systemctl restart nginx