目录
一、概述
(一)功能
(二)网站模型
(三)优势
(四)监听端口
二、安装
(一)扩展
(二)基础配置
1、 关闭防火墙
2、 关闭SELinux
3、 关闭NetworkManager
4、 配置IP地址
5、 连通性测试 ping
(三)yum安装
1、 低版本
2、 官方高版本
3、 查看指定软件所有可安装版本
4、 下载指定版本软件包
5、下载路径
6.yum源拓展命令
(四)源码安装
前文已讲述,在此不过多追述
三、目录结构
四、命令
五、主配置文件
六、配置
(一)单网站配置
(二)虚拟主机配置
(三)SSL加密配置
1、加密类型
1.1、 对称加密
1.2、 非对称加密
2、SSL概述
2.1、 网景公司(Netscape)设计的主要用于Web的安全传输协议
2.2、 安全套接字 secure socket layer
2.3、 通过证书来实现,证书颁发机构(CA),PKI认证
2.4、 传输过程
2.5、 在https协议中的监听端口 443/tcp
2.6、 https的特点
3、openssl命令
3.1、 概述
3.1.1、 openssl
3.1.2、 OpenSSL
4、证书生成
5、nginx配置SSL
6、 完整操作流程
6.1、 配置基础环境
6.2、 编译安装nginx
6.3、 生成、查看私钥文件
6.4、 更改配置文件
web服务
反向代理
负载均衡
缓存服务
epoll
并发高,单机并发高达50000
80/tcp
yum保持软件包缓存
vim /etc/yum.conf
将 keepcache=0 改为 keepcache=1
案例
把所有httpd相关软件包放到同一目录
rpm -ivh ./*.rpm
systemcetl stop firewalld && systemctl disable firewalld
setenforce 0
systemcetl stop NetworkManager && systemctl disable NetworkManager
vim /etc/sysconfig/network-scripts/ifcfg-ens33
yum install -y epel-release
yum install -y nginx
Nginx官方网站:nginx news
创建并编辑如下文件
vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
yum list nginx --showduplicates
yum install -y nginx-1.20.0
yum upgrade nginx-1.22.0 --downloadonly
/var/cache/yum/x86_64/7/yum源名称
/var/cache/yum/x86_64/7/nginx-stable/packages
清理缓存 yum clean all
快速生成缓存 yum makecache fast
yum列表 yum list
快速查看指定源 yum list | grep nginx
查看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启动时指定配置文件位置
案例
cp /etc/nginx/nginx.conf /opt/
修改/opt/nginx.conf文件
PID文件位置
端口号
访问文档根目录
-s stop 停止服务
-s reload 不停止服务,平滑加载配置文件
-t 测试配置文件并返回信息
主配置文件存放位置 /etc/nginx/nginx.conf
user nginx; 运行用户
worker_processes 进程数量
error_log 错误日志
pid 进程ID
events { worker_connections } 定义每个工作进程的最大连接数
http{} web网站配置块
include /etc/nginx/mime.types; 支持的文件解析类型
log_format 日志格式配置
access_log 访问日志路径
include /etc/nginx/conf.d/*.conf; 引用其他文件到当前文件
vim /etc/nginx/conf.d/default.conf
server { } 定义web站点配置
listen 监听端口
server_name 域名
location 指定访问的路径及默认文档
root 访问文档根目录
index 默认文档
启动nginx即可
基于不同端口
vim /etc/nginx/conf.d/default.conf
更改配置文件
mv default.conf wjy1.conf
cp-p wjy1.conf wjy2.conf
编辑wjy1.com配置文件
编辑wjy2.com
进入主配置文件vim /etc/nginx/nginx.conf
注释掉access_log行
重启服务
systemctl restart nginx
进入目录 cd /usr/share/nginx/html/ 下创建目录wjy1 wjy2
mkdir wjy1 wjy2
cp index.html wjy1
cp index.html wjy2
基于不同IP地址
基于不同域名
秘钥相同,不安全
公钥:所有人都可以知道,用来对使用对等私钥加密的数据进行解密
私钥:只有自己知道,用来对使用对等公钥加密的数据进行解密
数据加密:使用公钥加密,保证数据一致性(完整性)
数字签名:使用私钥加密,保证发送者的确定性
首先发送数字证书,获取到可信的public key
通过public key发送对称秘钥,接收方用私钥解密。
通信双方使用仅仅对方可知的对称秘钥进行加密传输
通过数字证书确认服务器身份,获知服务器公钥
将对称加密密钥通过非对称进行传输沟通
之后的通信过程采取对称加密
openssl程序是一个命令行工具。用于使用OpenSSL加密库的加密函数。它可以用于创建和管理私钥、公钥和参数、公钥密码操作、创建X.509证书、CSR和CRL、消息摘要的计算、密码加密和解密、SSL/TLS客户端和服务器测试、处理S/MIME签名或加密邮件、时间戳请求、生成和验证
OpenSSL是一个实现安全套接字层的加密工具包(SSL v2/v3)和传输层安全(TLS v1)网络协议以及他们要求的相关密码标准。
genrsa:生成私钥文件
-out :指定生成的证书请求或者自签名证书名称
req:用来生成自签证书
-new :说明生成证书请求文件
-key :指定已有的秘钥文件生成秘钥请求,只与生成证书请求选项-new配合。
x509 :说明生成自签名证书
-req:用来生成自签证书
-in:读取文件
-signkey:读取私钥文件
mkdir -p /usr/local/pki/nginx
生成私钥文件(包含公钥和私钥)
cd /usr/local/pki/nginx
openssl genrsa -out nginx.key
查看私钥文件:openssl rsa -in nginx.key -text
生成证书请求文件
cd /usr/local/pki/nginx
openssl req -new -key nginx.key -out nginx.csr
生成证书
cd /usr/local/pki/nginx
openssl x509 -req -days 3650 -in nginx.csr -signkey nginx.key -out nginx.crt
查看证书:
openssl x509 -req -days 3650 -in nginx.csr -signkey ./private/nginx.key -text
nginx.conf中去掉ssl配置注释,修改证书请求文件及证书文件的名称。
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http-stub-status_module
上述命令 "./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http-stub-status_module" 是用于配置 Nginx 编译和安装的命令。
具体解释如下:
"./configure" 是运行 Nginx 的配置脚本命令。
"--prefix=/usr/local/nginx" 指定了安装路径前缀为 "/usr/local/nginx",即将 Nginx 安装到该目录下。
"--with-http_ssl_module" 是启用了 Nginx 的 SSL 模块,用于支持通过 SSL/TLS 进行加密的 HTTPS 通信。
"--with-http-stub-status_module" 是启用了 Nginx 的状态模块,用于提供服务器的简单状态信息,例如连接数、请求信息等。
此命令的执行是为了根据指定的配置选项进行编译和安装 Nginx,并根据需要启用相应的模块,以便在安装后的 Nginx 服务器中获得相应的功能和特性。
yum补全缺失的依赖
make && make install完成编译安装
openssl genrsa -out nginx.key 1024 生成私钥文件(包含公钥和私钥)
openssl rsa -in nginx.key -text 查看私钥文件
openssl req -new -key /nginx.key -out nginx.csr 生成证书请求文件
Country Name (2 letter code) [XX]:cn
国家名称(两个字母的代码):cn(中国)
State or Province Name (full name) []:bj州或省份名称:bj(北京)
Locality Name (eg, city) [Default City]:bj地点名称:bj(北京)
Organization Name (eg, company) [Default Company Ltd]:bj组织名称:bj(北京)
Organizational Unit Name (eg, section) []:bj组织单位名称:bj(北京)
Common Name (eg, your name or your server's hostname) []:www.wang.com通用名称:www.wang.com(您的名称或服务器的主机名)
Common Name (eg, your name or your server's hostname) []:www.wang.com (必须与nginx的域名一致)
Email Address []: 电子邮件地址:您的电子邮件地址Please enter the following 'extra' attributes
请输入以下“额外”属性
to be sent with your certificate request与您的证书请求一起发送
A challenge password []:挑战密码:用于进一步验证您的身份的密码(可选)
An optional company name []:公司名称:您的公司名称(可选)
vim /usr/local/nginx/conf/nginx.conf
取消pid的注释
取消注释日志格式
将https server下的server全部取消注释,并进行更改
创建软链接
ln -s /usr/local/nginx/sbin/nginx /usr/sbin
编辑配置文件
vim /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/bin/sh -c "/bin/kill -s HUP $(/bin/cat /usr/local/nginx/logs/nginx.pid)"
ExecStop=/bin/sh -c "/bin/kill -s TERM $(/bin/cat /usr/local/nginx/logs/nginx.pid)"[Install]
WantedBy=multi-user.target
注意:上述配置文件所指目录位置(路径),需和/usr/local/nginx/conf/nginx.conf关联起来
systemctl daemon-reload
systemctl daemon-reload是一个systemctl命令,用于重新加载systemd的守护进程配置文件。当我们对systemd的守护进程配置文件进行了修改后,需要使用这个命令来重新加载配置,使得修改生效。
systemctl -anput | grep nginx 查看监听