文章目录
- 一、nginx相关内容
- nginx是什么?可以实现什么功能?
- 为什么要使用nginx?和它功能相似的APP有哪些?
- nginx应用场景
- nginx的架构原理
- nginx的基本操作
- nginx安装
- nginx相关命令
- Nginx相关的配置文件
- Nginx访问方式
一、nginx相关内容
nginx是什么?可以实现什么功能?
nginx是一个http和反向代理的服务器 http服务器就是web服务器,web服务器使用nginx还是有一定缺陷的 因为nginx的轻量级导致它缺少很多的模块,没有办法满足现在的互联网 所以在现在我们一般使用的是基于nginx二层开发的web服务,例如tengine、openrusty; nginx现在最重要的是代理,nginx的代理有反向代理和正向代理 反向代理:四层代理【4层代理:使用NAT(Network Address Translation)技术,即网络地址转换】 七层代理【nginx读取并解析Http请求内容】为什么要使用nginx?和它功能相似的APP有哪些?
#和nginx相似的有Apache IIS【微软的,IIS就相当于把你的机器变成一个服务器用来浏览网页】 Tomcat:运行JAVA的网络服务器 Lighttpd:开源Web服务器软件 openrusty:是一个基于 Nginx 与 Lua 的高性能 Web 平台#为什么我们需要使用nginx1、轻量并且高扩展 【轻量是因为它安装很快包小,高扩展是因为nginx是易读的方便开发人员二次开发使用】2、高性能和高并发 【高性能是指服务响应时间快,(CPU/处理器/内存)特别是在高并发下响应时间不会急剧增加】 【高并发是指短时间内遇到大量操作请求】3、高可靠 【高可靠性来自于其核心框架代码的优秀设计、模块设计的简单性;另外,官方提供的常用模块都非常稳定】3、占有内存少,并发能力强#负载均衡有4中1、F5:硬件负载均衡;因为是硬件所以各方面表现是非常好的2、LVS:只支持四层的负载均衡,就是NAT技术,需要用在硬件环境中,和云环境是不兼容的,所以现在基本很少使用了,它的重点在于四种工作模式:dr:直接路由模式;tun:隧道模式;nat:路由转发模式;fullnat模式3、nginx:生态最好的,支持四层和七层,早期的时候默认只支持四层4、HAproxy:高可用代理,七层代理上比nginx具有更灵活的策略nginx应用场景
nginx的架构原理
多进程模型
进程是操作系统资源分配到最小的单位,因为CPU数量是有限的,多个进程通过分配的时间获取CPU的使用权限
nginx采用master-worker的工作机制
master负责工作进程的配置加载、启停等相关的操作
worker负责处理具体的请求
worker之间是独立的,每一个工作进程处理多个连接
每一个连接有一个工作进程全权处理,不进行进程的切换,这样就不会产生进程切换导致的资源消耗问题
共享内存允许多个进程访问同一个内存地址,一个进程改变了内容之后,其他的进程可以使用改变了之后的内容
worker工作原理
模块化
1、核心模块 cron 提供的是nginx服务的基本功能,例如nginx的进程管理、CPU亲缘性、内存管理、配置文件和日志功能
2、事件模块: 负责进行连接处理
3、Http模块:提供Http处理的核心功能和部分功能模块
4、mail模块 提供邮件代理
5、Stream模块 提供TCP/UDP会话代理和负载的功能
6、upstream模块 提供七层代理和负载均衡的功能
nginx的基本操作
nginx安装
可以使用三种方式进行安装
1、源码安装
2、官方源安装 版本较新
3、epel源安装 版本比较低
#安装之前都是需要进行安装运行环境的yuminstall-y gcc gcc-c++ autoconf pcre pcre-devel zlib-devel openssl-develmake automakewgethttpd-toolsvimtree#使用官方源安装的,必须要有官方源配置# vim /etc/yum.repos.d/nginx.repo[nginx-stable]name=nginx stable repobaseurl=http://nginx.org/packages/centos/$releasever/$basearch/gpgcheck=1enabled=1gpgkey=https://nginx.org/keys/nginx_signing.keymodule_hotfixes=truenginx相关命令
启动服务 nginx有两套管理方案1)自带的 启动nginx nginx 关闭nginx nginx -s stop 重载 nginx -s reload 测试语法 nginx -t 查看版本 nginx -v 查看携带模块及功能(源码安装的配置参数) nginx -V#systemd托管(建议)systemctl start|stop|restart|reload|status nginx 不能重叠使用#查看端口占用ss -lntp|grep:80netstat-lntp|grep:80 -l listen 侦听 -n 以数字方式显示,不做反向解析,提供查询效率 -t tcp -p 进程lsof-i:80#查看服务状态systemctl status nginx#查看进程状态psaux|grep[n]ginxNginx相关的配置文件
#配置文件路径:主配置文件 /etc/nginx/nginx.conf 整个配置文件是以区块的形式组织的。一般,每个区块以一对大括号{}来表示开始与结束 子配置文件(配置站点)/etc/nginx/conf.d/*.conf 配置文件 Nginx的站点配置文件/etc/nginx /etc/nginx/nginx.conf /etc/nginx/conf.d /etc/nginx/conf.d/default.conf 配置文件 Scgi、Fastcgi、Uwcgi配置文件 /etc/nginx/fastcgi_params /etc/nginx/scgi_params /etc/nginx/uwsgi_params 配置文件 Nginx编码转换映射文件 /etc/nginx/win-utf /etc/nginx/koi-utf /etc/nginx/koi-win /etc/nginx/mime.types 配置文件 http协议的Content-Type与扩展名 /usr/lib/systemd/system/nginx.service 配置文件 配置系统守护进程管理器 /etc/logrotate.d/nginx 配置文件 Nginx日志轮询,日志切割 Nginx终端管理命令 /usr/sbin/nginx /usr/sbin/nginx-debug 命令 目录 Nginx模块目录 /etc/nginx/modules /usr/lib64/nginx /usr/lib64/nginx/modules 目录 Nginx默认站点目录 /usr/share/nginx /usr/share/nginx/html /usr/share/nginx/html/50x.html /usr/share/nginx/html/index.html Nginx的帮助手册 /usr/share/doc/nginx-1.12.2 /usr/share/man/man8/nginx.8.gz /var/cache/nginx 目录 Nginx的缓存目录 /var/log/nginx 目录 Nginx的日志目录Nginx访问方式
1.通过服务器的IP直接访问(不推荐)
2.通过假域名方式访问(推荐方式)
Windows修改 C:\Windows\System32\drivers\etc\hosts
10.0.0.7 game.tf.com
3.使用ping命令测试域名解析是否正常