课程:瑞吉外卖p178
nginx简介
官网:nginx news
定位:轻量级web服务器
功能:
- 反向代理:为服务器收发请求,使真实服务器对客户端不可见。
- 代理:为客户端收发请求,使真实客户端对服务器不可见
- 负载均衡:负载均衡是高可用性基础架构的关键组件,通常用在多个服务器之间分配工作负载来提高网站、应用程序、数据库和其他服务的性能和可靠性。
特点:
- 并发能力强
- 占有内存少
nginx下载和安装
windows安装
下载安装:nginx: download 下载安装包,解压缩到本地
说明:
- conf目录下的nginx.conf文件是需要修改的配置文件
- html目录下是放静态资源的
启动:
- 方法一:直接双击nginx.exe,双击后会有一个黑色的弹窗一闪而过
- 方法二:打开cmd命令窗口,切换到nginx解压目录下,输入命令 nginx.exe 或者 start nginx,按Enter回车即可
Linux服务器安装
- 安装依赖包:yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
- 一次性安装5个依赖
- 下载nginx:wget 安装包地址
- 没有wget的话,先安装wget 命令:yum install wget
- tar命令解压缩:tar zxvf nginx***
- 进入nginx文件夹:cd nginx***
- 做安装的检查工作:./configure --prefix=/usr/local/nginx
- 需要先创建多层目录:mkdir -p /usr/local/nginx
- 编译和安装:make && make install
linux文件夹结构树形展示:yum install tree
MacOS安装
参考:Mac os 安装 nginx 教程(success)_mac安装nginx-CSDN博客
Nginx命令
课程:瑞吉外卖p179
运行nginx
使用nginx操作命令前提:必须进入到nginx的自动生成目录的下/sbin文件夹下
- 执行命令:./nginx
- 测试启动/查看进程: ps -ef | grep nginx
- 默认有master和worker两个进程
- 查看本机端口号:ip addr
- ip + nginx默认开放的端口80就可以访问首页,eg:121.43.167.61:80
- 防火墙问题
在 windows 系统中访问 linux 中 nginx,默认不能访问的,因为防火墙问题
解决方式:1.关闭防火墙 2.开放访问的端口号,80 端口
- 关闭防火墙:systemctl stop firewalld
- 重启防火墙:firewall-cmd –reload
- 设置开放的端口号:
- firewall-cmd --add-service=http –permanent
- firewall-cmd --add-port=80/tcp --permanent
- 查看开放的端口号:firewall-cmd --list-all
- 配置nginx环境变量:vim /etc/profile 打开文件夹里添加nginx路径
- 编辑完成后需要重新加载:source /etc/profile
nginx命令
- 查看版本:./nginx -v
- 检查配置文件正确性:./nginx -t
- 启动nginx ./nginx
- 测试启动/查看进程: ps -ef | grep nginx
- 关闭nginx ./nginx -s stop
- 重新加载nginx:./nginx -s reload
查看nginx进程:ps -ef | grep nginx
编辑文件:i
保存退出:ESC :wq
注释:#
Nginx配置文件结构
nginx目录结构
tree /usr/local/nginx
/usr/local/nginx
├── client_body_temp
├── conf # Nginx所有配置文件的目录
│ ├── fastcgi.conf # fastcgi相关参数的配置文件
│ ├── fastcgi.conf.default # fastcgi.conf的原始备份文件
│ ├── fastcgi_params # fastcgi的参数文件
│ ├── fastcgi_params.default
│ ├── koi-utf
│ ├── koi-win
│ ├── mime.types # 媒体类型
│ ├── mime.types.default
│ ├── nginx.conf # Nginx主配置文件
│ ├── nginx.conf.default
│ ├── scgi_params # scgi相关参数文件
│ ├── scgi_params.default
│ ├── uwsgi_params # uwsgi相关参数文件
│ ├── uwsgi_params.default
│ └── win-utf
├── fastcgi_temp # fastcgi临时数据目录
├── html # Nginx默认站点目录
│ ├── 50x.html # 错误页面优雅替代显示文件,例如当出现502错误时会调用此页面
│ └── index.html # 默认的首页文件
├── logs # Nginx日志目录
│ ├── access.log # 访问日志文件
│ ├── error.log # 错误日志文件
│ └── nginx.pid # pid文件,Nginx进程启动后,会把所有进程的ID号写到此文件
├── proxy_temp # 临时目录
├── sbin # Nginx命令目录
│ └── nginx # Nginx的启动命令
├── scgi_temp # 临时目录
└── uwsgi_temp # 临时目录
p180:其中主要做http块配置的修改
Nginx配置文件nginx.conf属性模块
worker_processes 1; # worker进程的数量
events { # 事件区块开始
worker_connections 1024; # 每个worker进程支持的最大连接数
} # 事件区块结束
http { # HTTP区块开始
include mime.types; # Nginx支持的媒体类型库文件
default_type application/octet-stream; # 默认的媒体类型
sendfile on; # 开启高效传输模式
keepalive_timeout 65; # 连接超时
server { # 第一个Server区块开始,表示一个独立的虚拟主机站点
listen 80; # 提供服务的端口,默认80
server_name localhost; # 提供服务的域名主机名
location / { # 第一个location区块开始
root html; # 站点的根目录,相当于Nginx的安装目录
index index.html index.htm; # 默认的首页文件,多个用空格分开
} # 第一个location区块结果
error_page 500502503504 /50x.html;# 出现对应的http状态码时,使用50x.html回应客户
location = /50x.html { # location区块开始,访问50x.html
root html; # 指定对应的站点目录为html
}
}
......
全局块
- 区域:从配置文件开头到events之前的区域
- 内容:Nginx运行相关的全局配置
events块
- 区域:events包裹的区域。
- 内容:和网络相关的配置
http块
内容:代理,缓存,日志记录,虚拟主机配置
-
http全局块
- 区域:http块内开头到server块之前的内容
-
Server块
内容:~-
server全局块
- 特点:可配置多个
- 内容:监听的端口号
-
location块
- 特点:可配置多个
- 内容:响应的首页
- 注意哈:红色的是不可修改的,黑色字体是可修改的
-
Nginx静态部署资源
反向代理
proxy_passh 属性名下
负载均衡
负载均衡算法:
- 默认:轮询
- weight:权重-----数值越大,分配给某个服务器的请求越多
- ip_hash:根据ip分配
- least_conn:依据最少连接
- url_hash:根据请求url地址生成的hash值
- fail:根据响应时间分配
Nginx部署项目(宝塔)
宝塔操作真的简单,但是要注意很凌乱的设置
软件商店--->下载相关的软件,mysql,nginx...等等
网站--->添加对应的项目
- HTML项目,添加前端使用的域名
- 然后配置文件里看需要修改(nginx端口或者重定向的配置)
- 在防火墙里打开项目所使用的端口
「未完善~~」
前端项目:
- 项目打包后放在nginx的html目录下
- 修改nginx配置文件nginx.conf
后端Java项目
- 服务器中安装jdk,maven,git,mysql,使用git clon 将代码克隆下来
- (ssh脚本)