- 开源的免费的web服务器软件
- 在2019.3.12日被F5硬件负载均衡厂家收购
- 主要用于发布网站代码、提供网页信息服务
- 用户使用浏览器可以实现网站页面的访问
- 代码一般由开发人员编写
web软件: apache weblogic tomact
简介- 高性能HTTP和反向代理服务器、IMAp、POP3、SMTP服务器。
- 由俄罗斯开发第一个公开版本0.1.0发布于2004年10月1日
- 其将源代码以类似于BSD许可证的形式发布,因稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名
- nginxWEB软件默认只能处理静态网页、不能直接处理动态网页,动态网页交与第三方程序处理
静态网页(静态文件):
- 静态网页一半是跟后端数据库不发生交互的网页,网页文件内容几乎不更新,网页文件后缀命名通常以.html、.htm、.xml(.txt、.css、.js、.jpeg、.png、.gpg、.doc)结尾
- 由一个或多个静态文件组成的
动态网页(动态文件):
- 静态网页一半是跟后端数据库发生交互的网页,网页文件内容经常更新或随着后端数据库内容变化而更新,网页文件后缀命名通常以.asp、.php、.jsp结尾
nginx特点:占用内存少、并发能力强
- nginx与apache对比
- 高并发响应性能非常好、官方Nginx处理静态文件并发为5w/s
- 负载均衡及反向代理性能非常强
- 从nginx官网下载源码包URL:http://nginx.org/download/nginx-1.20.2.tar.gz
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J8GVO2Md-1650633342526)(C:UserssunAppDataRoamingTyporatypora-user-imagesimage-20220416153723976.png)]
- 由于我之前yum安装了nginx,所以我先卸载,卸载后一些目录存在,需删除
- 这里没有指定下载目录手动移动过去
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ny18oSFL-1650633342527)(C:UserssunAppDataRoamingTyporatypora-user-imagesimage-20220416154329592.png)]
- 使用tar解压安装包
[root@VM-16-5-centos src]# tar -zxvf nginx-1.20.2.tar.gz
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lama0Mud-1650633342528)(C:UserssunAppDataRoamingTyporatypora-user-imagesimage-20220416154537963.png)]
- 到解压目录下
[root@VM-16-5-centos src]#tar -zxvf nginx-1.20.2.tar.gz [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1dvCuH79-1650633342529)(C:UserssunAppDataRoamingTyporatypora-user-imagesimage-20220416154624810.png)]
- 进行预编译 编译 安装
./configure --prefix=/usr/local/nginx/(预编译 指定路径)
[root@VM-16-5-centos nginx-1.20.2]# ./configure --prefix=/usr/local/nginx
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LTeH4d5l-1650633342529)(C:UserssunAppDataRoamingTyporatypora-user-imagesimage-20220416155009103.png)]
输出信息
Configuration summary
- using system PCRE library
- OpenSSL library is not used
- using system zlib library
nginx path prefix: “/usr/local/nginx”
nginx binary file: “/usr/local/nginx/sbin/nginx”
nginx modules path: “/usr/local/nginx/modules”
nginx configuration prefix: “/usr/local/nginx/conf”
nginx configuration file: “/usr/local/nginx/conf/nginx.conf”
nginx pid file: “/usr/local/nginx/logs/nginx.pid”
nginx error log file: “/usr/local/nginx/logs/error.log”
nginx http access log file: “/usr/local/nginx/logs/access.log”
nginx http client request body temporary files: “client_body_temp”
nginx http proxy temporary files: “proxy_temp”
nginx http fastcgi temporary files: “fastcgi_temp”
nginx http uwsgi temporary files: “uwsgi_temp”
nginx http scgi temporary files: “scgi_temp”
对照汉字
配置摘要
+使用系统PCRE库
+未使用OpenSSL库
+使用系统zlib库
nginx路径前缀:“/usr/local/nginx”
nginx二进制文件:“/usr/local/nginx/sbin/nginx”
nginx模块路径:“/usr/local/nginx/modules”
nginx配置前缀:“/usr/local/nginx/conf”
nginx配置文件:“/usr/local/nginx/conf/nginx.conf”
nginx pid文件:“/usr/local/nginx/logs/nginx.pid”
nginx错误日志文件:“/usr/local/nginx/logs/error.log”
nginx http访问日志文件:“/usr/local/nginx/logs/access.log”
nginx http客户端请求正文临时文件:“客户端u正文u临时”
nginx http代理临时文件:“proxy_temp”
nginx http fastcgi临时文件:“fastcgi_temp”
nginx http uwsgi临时文件:“uwsgi_temp”
nginx http scgi临时文件:“scgi_temp”
- 编译
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3LwUsCLp-1650633342530)(C:UserssunAppDataRoamingTyporatypora-user-imagesimage-20220416160216226.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YJgBY2ET-1650633342530)(C:UserssunAppDataRoamingTyporatypora-user-imagesimage-20220416160605753.png)]
这里我ssh断了需要重新进入目录在编译否则就会报错
这里cc -c :cc是gcc编译器、-c代表编译 -o产生二进制文件
- 安装
make install
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xBw4H5ld-1650633342531)(C:UserssunAppDataRoamingTyporatypora-user-imagesimage-20220416160703160.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uzd4ugmG-1650633342531)(C:UserssunAppDataRoamingTyporatypora-user-imagesimage-20220416161216690.png)]
- 目录解释
conf:配置文件目录
html:发布目录、开发需上传到这个目录
logs:日志目录(错误日志、访问日志等)
sbin:执行文件 启动文件 二进制文件
- 启动nginx命令
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WZTX4rVj-1650633342532)(C:UserssunAppDataRoamingTyporatypora-user-imagesimage-20220416161920398.png)]
- 查看监听端口
[root@VM-16-5-centos nginx]# netstat -tnlp | grep nginx
- 部署完成,测试
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Obk0K7pm-1650633342532)(C:UserssunAppDataRoamingTyporatypora-user-imagesimage-20220416162349327.png)]
如果访问不成功可能是防火墙没有关闭,防火墙阻挡了我们的请求
关闭防火墙 systemctl stop firewalld.server
发布网站 发布百度网站(静态网页)进入发布目录 html 并备份
备份[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KnkpqFlE-1650633342532)(C:UserssunAppDataRoamingTyporatypora-user-imagesimage-20220416163311512.png)]
修改index.html文件(我这里直接复制百度的源代码了)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-weYcy1LD-1650633342533)(C:UserssunAppDataRoamingTyporatypora-user-imagesimage-20220416163544665.png)]
删掉原来的index文件,新建一个并粘贴源码进去
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YTCts8In-1650633342533)(C:UserssunAppDataRoamingTyporatypora-user-imagesimage-20220416163811348.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kww810dU-1650633342533)(C:UserssunAppDataRoamingTyporatypora-user-imagesimage-20220416163739109.png)]
重新访问
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S1UKtEp9-1650633342534)(C:UserssunAppDataRoamingTyporatypora-user-imagesimage-20220416163931354.png)]
发布图片下载一个图片至html发布目录
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4mOCwK8d-1650633342534)(C:UserssunAppDataRoamingTyporatypora-user-imagesimage-20220416164700721.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WiyK34z1-1650633342535)(C:UserssunAppDataRoamingTyporatypora-user-imagesimage-20220416164711675.png)]
在IP地址后+/图片名称访问
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fS8PESJK-1650633342535)(C:UserssunAppDataRoamingTyporatypora-user-imagesimage-20220416164822598.png)]
域名与IP绑定为什么要进行域名绑定:用户记不住IP地址,域名容易记忆(www.xxx.com)
nginx虚拟主机
在企业生产环境中,nginxWEB默认发布了一套网站程序,nginx通常会发布多个网站(最大化利用机器资源,实现多个网站集中化管理),将nginx发布多个网站的方法称为虚拟主机。nginx虚拟主机发布方式又分为如下三种:
- 同一个ip 不同访问端口(需要在网址后跟端口对于用户不友好,不推荐)
- 同一个访问端口 不同的ip
- 同一个ip地址 同一个访问端口 不同的域名备份配置文件
[root@VM-16-5-centos conf]# cp nginx.conf /data/backup/2022-04-15/
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MjoGK4zs-1650633342535)(C:UserssunAppDataRoamingTyporatypora-user-imagesimage-20220416205726308.png)]
去除注释
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bO67X3ZN-1650633342536)(C:UserssunAppDataRoamingTyporatypora-user-imagesimage-20220416210541741.png)]
server代表网站
第一种:
修改listen 参数(该参数为监听端口,意思就是该网站使用那个端口)
第二种:
修改listen参数变为ip:端口(需要添加网卡,有几个IP就添加几块网卡)
第三种:
修改server_name参数将localhost变为域名(该方式需指定html文件,root html; html表示为:/usr/local/nginx/html)
参数详解work_process :开启多少进程(auto表示根据系统负载调节)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XHqhA7dq-1650633342536)(C:UserssunAppDataRoamingTyporatypora-user-imagesimage-20220418210638139.png)]
master负责生成监控worker进程,worker进程负责处理请求
worker cpu affinity 对进程绑定cpu
error_log:错误日志 /错误日志路径 *等级
错误日志级别
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k9cXRT12-1650633342536)(C:UserssunAppDataRoamingTyporatypora-user-imagesimage-20220418214238757.png)]
use epoll 处理引擎支持多路异步并发批量处理请求,多线程模式
单线程:一个人只做一个事
多线程:一个人做多个事
events:事件 一般配置worker_connections(每秒处理最大请求数)
http模块:超文本传输协议
include:引用
mime.types:定义静态文件后缀(告诉nginx只要是这些后缀文件你都可以处理)
default_type:默认支持类型 定义字节流(把不可解析的文件作为下载处理)
sendfile:发送文件 on开启 (提高读写文件速度)
keepalive_timeout 65:超时时间65秒(单位秒;当客户端与服务端连接好后,发送完文件,65秒后断开,相当于打电话65秒不说话自动断开,期间再次说话重新计时)
server网站、服务器、虚拟主机:
listen:监听端口
server_name:用来做域名区分可以写多个空格分开
location:指引匹配 / 代表根目录
root 指定发布目录
index 引导页 第一个访问页面 可以写多个 空格分开,一个访问不成功递归,都找不到则返回报错页面
error_page:定义错误页面
location = :匹配路径等于什么返回那个文件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wTqanUVm-1650633342537)(C:UserssunAppDataRoamingTyporatypora-user-imagesimage-20220418213124217.png)]
定义访问50x.html返回html



