nginx web服务

目录

一.概述

1.nginx特点

2.nginx作用

二.nginx服务搭建

1.nginx安装

2.目录结构

3.核心配置文件

4.核心命令

5.nginx信号

三.配置案例

1.单站点配置

2.虚拟机主机头配置

四.HTTPS访问配置

1.ssl简介

2.ssl协议介绍

3.传输过程

4.openssl介绍

5.HTTPS工作流程

7.nginx配置ssl

五.loocation配置

1.作用

2.匹配规则

3.匹配优先级

六.rewrite配置

1.语法

2.可写入字段

3.if指令

4.autoindex

5.nginx配置中的常用变量

七.配置nginx状态统计

1.下载vts模块

2.编译nginx


一.概述

1.nginx特点
  • 高并发、高性能;

  • 模块化架构使得它的扩展性非常好

  • 异步非阻塞的事件驱动模型(epoll)这点和 Node.js 相似

  • 相对于其它服务器来说它可以连续几个月甚至更长而不需要重启服务器使得它具有高可靠性;

  • 热部署、平滑升级;

  • 完全开源,生态繁荣。

2.nginx作用
  • http服务器。Nginx可以独立提供http服务。可做网页静态服务器。

  • 虚拟主机。可以实现在一台服务器虚拟出多个虚拟服务器。

  • 反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会应为某台服务器负载高宕机而某台服务器闲置的情况。

  • nginx 中也可以配置安全管理、比如可以使用Nginx搭建API接口网关,对每个接口服务进行拦截。

二.nginx服务搭建

1.nginx安装
  • yum安装

  • 编译安装

2.目录结构
  • yum安装

配置文件目录:/etc/nginx/
临时数据文件目录:/var/lib/nginx 
日志文件目录:/var/log/nginx/ 
访问页面根目录:/usr/share/nginx/html/ 
自定义配置文件目录:/etc/nginx/conf.d 
默认配置文件目录:/etc/nginx/default.d 
  • 编译安装

配置文件目录:/usr/local/nginx1.8/conf 
自定义配置文件目录:/usr/local/nginx1.8/conf/conf.d 
默认配置文件目录:/usr/local/nginx1.8/conf/default.d 
访问页面根目录: /usr/local/nginx1.8/html 
日志文件目录:/usr/local/nginx1.8/logs  
命令存放目录:/usr/local/nginx1.8/sbin 

3.核心配置文件
配置文件名称配置文件作用
fastcgi.conf此文件包含了FastCGI相关的配置,用于与FastCGI进程通信
fastcgi.conf.default此文件是fastcgi.conf的备份副本
fastcgi_params此文件包含了用于FastCGI的参数配置,包括fastcgi的传输协议、请求超时时间等
fastcgi_params.default此文件是fastcgi_params的备份副本
koi-utf此文件包含了UTF-8编码与KOI8-R编码之间的字符转换规则,用于处理中文文件名等问题
koi-win此文件包含了Windows系统的字符转换规则,用于处理Windows系统的文件名问题
mime.types此文件包含了Nginx支持的MIME类型配置,用于设置相应的Content-Type头
mime.types.default此文件是mime.types的备份副本
nginx.confNginx的主要配置文件,其中包含了所有全局配置和访问控制规则,作为Nginx服务器的入口文件
nginx.conf.default此文件是nginx.conf的备份副本
scgi_params此文件包含了用于SCGI协议的参数配置
scgi_params.default此文件是scgi_params的备份副本
uwsgi_params此文件包含了用于uWSGI协议的参数配置
uwsgi_params.default此文件是uwsgi_params的备份副本
win-utf此文件包含了Windows系统的字符转换规则,用于处理Windows系统的文件名问题
4.核心命令
命令作用
systemctl enable nginx开机自动启动
systemctl disable nginx关闭开机自动启动
systemctl start nginx启动Nginx
systemctl stop nginx停止Nginx
systemctl restart nginx重启Nginx
systemctl reload nginx重新加载Nginx
systemctl status nginx查看 Nginx 运行状态
ps -elf | grep [n]ginx查看Nginx进程,但是不会显示grep本身的进程
kill -9 pid根据上面查看到的Nginx进程号,杀死Nginx进程,-9 表示强制结束进程
nginx -s reload向主进程发送信号,重新加载配置文件,热重启
nginx -s reopen重启 Nginx
nginx -s stop快速关闭
nginx -s quit等待工作进程处理完成后关闭
nginx -T查看当前 Nginx 最终的配置
nginx -t检查配置是否有问题
nginx -c configfilePath指定配置文件启动nginx
5.nginx信号
信号名含义
stop直接停止
quit优雅的退出:有人在访问不会结束进程
reopen分割日志
reload重新加载配置文件
term快速停止nginx进程,可能会中断现有连接,与stop信号类似。
usr1重新打开日志文件,用于日志切割或日志重定向,与reopen信号类似。
usr2平滑地升级nginx可执行文件。
hup重新加载配置文件,优雅地应用新配置,与reload信号类似。
winch当nginx以master/worker工作模式运行时,重新生成worker进程以适应新的配置。
usr3向worker进程发送自定义信号。

三.配置案例

1.单站点配置
2.虚拟机主机头配置

四.HTTPS访问配置

1.ssl简介
SSL (Secure Sockets Layer)安全套接层。是由Netscape(网景)公司于1990年开发,用于保障Word Wide Web(WWW)通讯的安全。**主要任务是提供私密性,信息完整性和身份认证。**
TLS(Transport Layer Security)安全传输层协议,)用于在两个通信应用程序之间提供保密性和数据完整性。该标准协议是由IETF于1999年颁布,整体来说TLS非常类似SSLv3,只是对SSLv3做了些增加和修改。

2.ssl协议介绍
SSL是一个不依赖于平台和应用程序的协议,位于TCP/IP协议与各种应用层协议之间,为数据通信提高安全支持

3.传输过程
  • 首先发送数字证书,获取到可信的public key。

  • 通过public key发送对称秘钥,接收方用私钥解密

  • 通信双方使用仅仅对方可知的对称秘钥进行加密传输

4.openssl介绍
OpenSSL是一个实现安全套接字层的加密工具包,openssl程序是一个命令行工具,用于使用OpenSSL加密库的加密函数
  • 创建和管理私钥、公钥和参数

  • 公钥密码操作

  • 创建X.509证书、CSR和CRT

  • 消息摘要的计算

  • 密码加密和解密

  • SSL/TLS客户端和服务器测试

  • 处理S/MIME签名或加密邮件

  • 时间戳请求、生成和验证

5.HTTPS工作流程
  • 客户端(浏览器)访问 https://www.baidu.com 百度网站;

  • 百度服务器返回 HTTPS 使用的 CA 证书;

  • 浏览器验证 CA 证书是否为合法证书;

  • 验证通过,证书合法,生成一串随机数并使用公钥(证书中提供的)进行加密;

  • 发送公钥加密后的随机数给百度服务器;

  • 百度服务器拿到密文,通过私钥进行解密,获取到随机数(公钥加密,私钥解密,反之也可以);

  • 百度服务器把要发送给浏览器的内容,使用随机数进行加密后传输给浏览器;(对称加密)

  • 此时浏览器可以使用随机数进行解密,获取到服务器的真实传输内容。

7.nginx配置ssl

五.loocation配置

1.作用

配置路径;写在server字段中

2.匹配规则
  • = 精确匹配;

  • ~ 正则匹配,区分大小写;

  • ~* 正则匹配,不区分大小写;

  • ^~ 匹配到即停止搜索;

3.匹配优先级

( = ) > (^~) > (~) > (~*) > (不带任何字符 “/”)。

六.rewrite配置

1.语法
rewirte /images/(.*\.jpg)$ /pic/$1; # $1是前面括号(.*\.jpg)的反向引用

2.可写入字段

server、location、if

3.if指令
4.autoindex
5.nginx配置中的常用变量
变量名含义
remote_add客户端IP地址
remote_port客户端端口
server_addr服务端IP地址
Server_port服务端端口
server_protocol服务端协议
binary_remote_addr二进制格式的客户端IP地址
connectionTCP连接的序号,递增
connection_requestTCP连接当前的请求数量
uri请求的URL,不包含参数
request ur请求的URL,包含参数
scheme协议名,http或https
request metho请求方法
request_length全部请求的长度,包含请求行、请求头、请求体
args全部参数字符串
arg_参数名获取特定参数值
is_argsURL中是否有参数,有的话返回?,否则返回空
query_string与args相同
host请求信息中的Host,如果请求中没有Host行,则在请求头中找,最后 使用nginx中设置的server_name。
http_user_agent用户访问方式
http_referer从哪些链接过来的请求
http_via每经过一层代理服务器,都会添加相应的信息
http_cookie获取用户cookie
request time处理请求已消耗的时间
https是否开启了https,是则返回on,否则返回空
request_filename磁盘文件系统待访问文件的完整路径
document_root由URI和root/alias规则生成的文件夹路径
limit_rate返回响应时的速度上限值

七.配置nginx状态统计

1.下载vts模块
https://github.com/vozlt/nginx-module-vts

2.编译nginx
tar xf nginx-module-vts-master.zip
cd nginx-1.22.1/
./configure --prefix=/usr/local/nginx/ --add-module=/root/nginx-module-vts-master && make && make install
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值