wordpress 判断管理员,上海seo培训中心,公司网站建设制作全包,手机网站备案费用nginx#xff1a;是一个高性能#xff0c;轻量级web软件
1、稳定性高#xff08;没有Aapache稳定#xff09; 2、资源消耗比较低#xff0c;体现在处理http请求的并发能力很高#xff0c;单台物理服务器可以处理到3万-5万个请求
稳定#xff1a;一般在企业中为了保持…nginx是一个高性能轻量级web软件
1、稳定性高没有Aapache稳定 2、资源消耗比较低体现在处理http请求的并发能力很高单台物理服务器可以处理到3万-5万个请求
稳定一般在企业中为了保持服务器稳定并发量的设置在2万个左右占用内存2M左右 nginx主要功能1、静态文件服务nginx可以直接提供静态文件服务如HTMLCSSJSP图片多种形态的静态文件
2、反向代理本身自己可以作为一个反向代理的服务器将客户端的请求转发给后端多个服务器可以实现负载均衡 正向代理了解 特点已知后端服务器请求只会往固定的服务 反向代理重点 nginx服务器通过轮询算法随机发送给其中一台web服务器
3台web服务器组成的集群形成了负载均衡其中坏了一台也没事 面试题什么是反向代理
反向代理的核心客户端在请求时沟通代理服务器会把请求的流量通过轮询算法转发到后台不同的服务器实现负载均衡。 3、处理动态内容nginx处理动态内容很差要转发到后台可以处理动态的应用如PHPnginx 可以代理请求发送到后端的动态服务处理动态服务器处理完之后再通过nginx把动态请求响应给客户端
4、可以实现SSL/TLS加密HTTPS的加密方式数字证书认证机制
5、虚拟主机nginx可以在一台服务器上设置多个主机同一个服务器可以有多个域名和站点
6、URL重定向可以实现灵活的URL重写和重定向例子想访问百度结果页面跳转到了新浪
7、缓存功能nginx自带缓存功能 8、日志功能可以详细的记录请求的信息包括访问时间请求路径ip地址响应状态
有助于故障排查系统控制的日志记录在/var/log/messages业务日志才会保存在自己的日志中
access.log记录谁访问了我
error.log记录谁访问了我但是记录的是访问失败的 总结nginx的核心功能 1、静态文件服务 2、反向代理 3、缓存服务 nginx的主要应用场景1、静态服务 2、反向代理负载均衡 3、缓存服务 4、动态服务
面试题nginx是如何实现高并发的
1、nginx自身代码的问题大量的底层代理进行了优化同时自带一个功能模块epoll模块支持高并发
2、nginx也是一个master进程控制多个worker进程master负责收集和分发请求worker才是实际执行者每一个请求进来时master就会拉起一个worker进程来处理请求
同时master进程也负责监控worker的状态worker的数量要和cup一致或是两倍
worker在处理请求的过程中只受内存大小的限制所以可以处理多个请求再加上nginx本身就是轻量级的服务处理请求时占用的内存本身就很少所以可以起到大并发处理的能力
二者之间相互依赖相互补充 在/usr/local/nginx路径下查看有四个文件conf、html、logs、sbin
conf保存所有nginx的配置文件最核心的是nginx.conf
html保存nginx的web文件这个目录是默认目录可以改
html文件里面还有一个50x.html是nginx默认的错误页面提示
logs保存日志文件
sbinnginx二进制的启动脚本可以结合不同参数进行使用 nginx -t检测配置文件是否配置正确
-v查看nginx版本号
-s向主进程传输信号 停止开启重启重新加载
-c设置配置文件的默认路径 信号符信号符结合kill命令
kill-USR1 pid号日志分割 pid号为nginx服务的pid号
kill-s HUP pid号 只要是kill只能跟pid号重新加载
killall -s HUP nginx跟服务名也可以用pid号
kill -s QUIT pid号优雅退出有人访问时不会结束进程访问完了才会结束进程
kill -s WINCH pid号优雅的结束worker直到请求完成才会结束worker进程 worker_process 工作进程也就是worker进程的数量和cpu数量一致或者是两倍
worker_connections 每个进程可以处理的最大连接数 面试题修改linux服务器文件的最大打开数量
ulimit -n 65535(文件打开的最大数量,linux只支持打开65535个文件) 临时修改 永久配置 vim /etc/security/limit.conf
在最后一行插入 * soft nproc 65535 最大进程数软限制为 65535即可以使用 ulimit -u 命令查看和修改的值。 * hard nproc 65535 最大进程数硬限制为 65535即最大可分配的进程数。 * soft nofile 65535最大打开文件数软限制为 65535即可以使用 ulimit -n 命令查看和修改的值。 * hard nofile 65535最大打开文件数硬限制为 65535即最大可分配的文件数。
这里使用的通配符 * 表示对所有用户生效。 最后要重启一下 面试题
nginx中的conf配置文件有几个模块全局模块event模块http模块在http模块中又包含了sever模块location模块
event模块配置影响nginx服务器与用户之间的网络连接
http模块针对http请求的配置代理缓存日志反向代理虚拟web主机server模块
非http请求的方式不能写在改模块中。反向代理七层、四层反向代理不能写在http模块
server模块配置虚拟主机的相关参数一个http模块中可以有多个server模块
location模块匹配的是uri root和alias的区别
root 拼接root指定的目录和location匹配的uri之间做的一个拼接/opt/ky30/这两个路径都要真实存在而且都是目录并且在uri目录里面要有web文件
alias匹配指定路径下的web文件
root后面有没有/无所谓加不加都可以 alias加了/后面也必须要有/否则匹配不到
/指向/usr/local/nginx/ root指向/usr/local/nginx/html/
root标签可以设置重定向alias不可以设置重定向
proxy_pass反向代理配置也是写在location模块中 总结全局模块全局生效所有模块用户都生效
event模块影响nginx和用户的网络连接问题
http模块主要模块配置代理缓存日志反向代理虚拟web主机server模块
只能是http请求才能写在http模块中
sever模块包含在http模块中不能单独设置
location模块匹配uri包含在server当中也不能单独设置
补充proxy_pass反向代理
stream四层走的是tcp或udp流量不能写在http中要写在全局配置中
upstream反向代理指定服务器的命令在http模块中
七层基于ip和端口走http协议只能在http模块中 实验 安装依赖环境 创建用户组 把数据包拖进opt目录 解压 在源码包中进行编译 ./configure --prefix/usr/local/nginx \ 指定安装路径 --usernginx \ 指定属主 --groupnginx \ 指定属组 --with-http_ssl_module \ http协议的加密模块 --with-http_v2_module \ 安装http2.0模块 --with-http_realip_module \ 允许nginx获取客户端的真实ip地址 --with-http_stub_status_module \ 可以记录nginx访问状态信息的模块 --with-http_gzip_static_module \ 支持页面压缩功能 --with-pcre \ 支持pcre库 --with-stream \ 支持tcp/udp的加密模块 --with-stream_ssl_module \ 支持tcp/udp的加密模块 --with-stream_realip_module 允许nginx作为代理服务器时可以获取客户端的ip 安装一下 修改权限把属主和属组都改成nginx nginx有四个文件 1. conf保存nginx所有的配置文件其中nginx.conf是nginx服务器的最核心最主要的配置文件 .default是默认配置文件改这些配置文件之前最好先做个备份 2. html目录中保存了nginx服务器的web文件但是可以更改为其他目录保存web文件, 另外还有一个50x的web文件是默认的错误页面提示页面。 3. logs用来保存nginx服务器的访问日志错误日志等日志 4. sbin保存nginx二进制启动脚本 nginx这个二进制文件添加到系统sbin默认路径下让系统识别nginx的操作命令 nginx -t 检查配置文件是否配置正确 查看nginx版本号 添加Nginx系统服务 因为我们知道了pid号的位置指定到了/usr/local/nginx/conf/nginx.conf 所以要在nginx下创建一个run的目录 修改配置文件因为指定了pid号所以pid的路径要改一下 重启一下nginx服务这个时候nginx服务安装完成 核心nginx配置文件 面试会问 我们说的配置文件指的是nginx.conf这个文件 面试题如何修改linux服务器文件的最大打开数量 临时修改linux的最大文件打开数为65535 永久修改 修改配置文件在最后一行添加 要用reboot重启一下才能生效 查看一下修改是否成功 全局模块 http模块 server模块 location模块 修改配置文件 重启一下发现404报错网页访问不了 实验一访问状态统计 访问统计的页面 Active connections:1 当前的活动连接数 server accepts handled requests 已经处理的连接信息 1已经处理的连接数 1已经成功进行三次握手的连接数 1已经处理请求的连接数 Reading:0 Writing:1 Waiting:0 正在进行连接保持的数 等待连接 多刷新几次发现变化的是已经处理请求的连接数 实验二访问状态统计
基于用户名和密码的访问控制 安装httppasswd工具 对http访问基于用户名和密码的控制 创建一个用户密码设置为123 修改passwd.db属主为nginx只有root和nginx用户可以读 修改权限只能读 修改配置文件 添加认证配置 重启服务 这个时候就需要输入账户密码 实验三基于ip地址的访问规则 修改配置文件 禁止192.168.88.10这个ip地址访问 实验四基于域名的 Nginx 虚拟主机基于一个服务器创建多个主页
为虚拟主机提供域名解析 echo 192.168.10.19 www.kgc.com www.benet.com /etc/hosts 为虚拟主机准备网页文档 mkdir -p /var/www/html/benet mkdir -p /var/www/html/kgc echo h1www.kgc.com/h1 /var/www/html/kgc/index.html echo h1www.benet.com/h1 /var/www/html/benet/index.html 修改Nginx的配置文件 server { listen 80; server_name www.kgc.com; #设置域名www.kgc.com charset utf-8; access_log logs/www.kgc.access.log; #设置日志名 location / { root /var/www/html/kgc; #设置www.kgc.com 的工作目录 index index.html index.php; } error_page 500 502 503 504 /50x.html; location 50x.html{ root html; } } server { listen 80; server_name www.benet.com; #设置域名www.benet.com charset utf-8; access_log logs/www.benet.access.log; location / { root /var/www/html/benet; index index.html index.php; } error_page 500 502 503 504 /50x.html; location 50x.html{ root html; } } 重启服务访问测试 systemctl restart nginx 浏览器访问 http://www.kgc.com http://www.benet.com 实验五基于nginx的虚拟ip主机 添加一张虚拟网卡 ifconfig ens33:0 192.168.146.21/24 修改Nginx的配置文件 vim /usr/local/nginx/conf/nginx.conf ...... http { ...... server { listen 192.168.146.20:80; #设置监听地址192.168.146.20 server_name www.kgc.com; charset utf-8; access_log logs/www.kgc.access.log; location / { root /var/www/html/kgc; index index.html index.php; } error_page 500 502 503 504 /50x.html; location 50x.html{ root html; }1 } server { listen 192.168.146.21:80; #设置监听地址192.168.146.21 server_name www.benet.com; charset utf-8; access_log logs/www.benet.access.log; location / { root /var/www/html/benet; index index.html index.php; } error_page 500 502 503 504 /50x.html; location 50x.html{ root html; } } } 重启服务并测试访问 systemctl restart nginx 浏览器访问 http://192.168.146.20 http://192.168.146.21 实验六基于端口的 Nginx 虚拟主机
修改Nginx的配置文件 vim /usr/local/nginx/conf/nginx.conf ...... http { ...... server { listen 192.168.146.20:666; #设置监听 666 端口 server_name www.kgc.com; charset utf-8; access_log logs/www.kgc.access.log; location / { root /var/www/html/kgc; index index.html index.php; } error_page 500 502 503 504 /50x.html; location 50x.html{ root html; } } server { listen 192.168.146.20:888; #设置监听 888 端口 server_name www.benet.com; charset utf-8; access_log logs/www.benet.access.log; location / { root /var/www/html/benet; index index.html index.php; } error_page 500 502 503 504 /50x.html; location 50x.html{ root html; } } } 重启服务并访问测试 systemctl restart nginx浏览器访问
http://192.168.146.20:666
http://192.168.146.20:888