nginx 基础
nginx相关: 1.nginx基本概念 1.概述: nginx是一个高性能的http和反向代理服务器,同时 也提供了IMAP/POP3/SMTP服务; 特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务 器中表 现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。 nginx专门为性能优化而开发,性能是其最重要的考量,实现上非常注重效率,能经受 高负载的考验,可以支持高达50000个并发连接数. 2.反向代理 1.正向代理: 在客户端(浏览器)配置代理服务器,通过代理服务器进行互联网的访问,然后将数据返回给客服端; 因为可以通过代理访问任意网站并且隐藏客户端自身,所以必须采取安全措施以确保仅为经过授权的客 户端提供服务. 2.反向代理:保护和隐藏原始资源服务器 将请求发给代理服务器,由代理服务器去选择目标服务器获取数据后,在返回给客户端;反向代理服 务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器ip地址. 3.负载均衡 定义:将负载进行平衡,分摊到多个服务器,从而协同完成工作任务. 优点:加强网络数据处理能力、增加吞吐量、提高网络的可用性和灵活性. 4.动静分离 定义:把动态页面和静态页面由不同的服务器来解析,加快解析速度,降低原来单个服务器的压力. 2.nginx 安装,常用命令与配置文件 0.安装Nginx需要的相关依赖包: pcre-devel zlib zlib-devel openssl openssl-devel 安装依赖包: yum install pcre-devel zlib zlib-devel openssl openssl-devel 1.安装nginx: 1)前往用户根目录 >: cd ~ 2)下载nginx1.13.7 >: wget http://nginx.org/download/nginx-1.13.7.tar.gz 3)解压安装包 >: tar -xf nginx-1.13.7.tar.gz 4)进入目标文件 >: cd nginx-1.13.7 5)配置安装路径:/usr/local/nginx >: ./configure --prefix=/usr/local/nginx 6)编译并安装 >: make && sudo make install 7)建立软连接:终端命令 nginx >: ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx 8)删除安装包与文件: >: rm -rf nginx-1.13.7 >: rm -rf nginx-1.13.7.tar.gz 9)测试Nginx环境,服务器运行nginx,本地访问服务器ip >: nginx >: 服务器绑定的域名 或 ip:80 查看开放的端口号: firewall-cmd --list-all 设置开放的端口号: firewall-cmd --add-service=http --permanent firewall-cmd --add-port=80/tcp --permanent 重启防火墙: firewall-cmd --reload 2.nginx常见命令: 0) 使用命令的前提:进入nginx的目录 >:/usr/local/nginx/sbin 1)启动 >: nginx 2)关闭nginx >: nginx -s stop 3)重启nginx >: nginx -s reload 4)查看端口,强行关闭 >: ps -aux|grep nginx >: kill <pid:进程编号> 5)查看nginx的版本号 >: nginx -v 3.nginx配置文件 1.位置:/usr/local/nginx/conf 下 nginx.conf中 2.组成:由三部分组成 1.第一部分:全局块 作用:主要会设置一些影响nginx服务器整体运行的配置指令 worker_processes 1; # 注:该值越大,可以支持的并发处理数量也越多,但是受到硬件,软件等设备的制约 2.第二部分:events块 作用:主要会设置一些影响nginx服务器与用户的网络连接 events { worker_connections 1024; #支持最大连接数为1024 } 注:这部分的配置对nginx的性能影响较大 3.第三部分:http块 配置最频繁的部分 http块可以分为:http全局块与server块 http全局块:配置的指令包括文件引入,mime-type定义,日志自定义,连接超时时间,单链接请求数上限 server块:与虚拟主机有密切关系 http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name local host; location / { root html; index index.html index.htm; } #error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } ... } 3.nginx原理
![](https://img2020.cnblogs.com/blog/1661773/202011/1661773-20201108014439271-2048576844.png)
![](https://img2020.cnblogs.com/blog/1661773/202011/1661773-20201108014456021-1324703538.png)
1. 1个master多个worker的优势: 1.可以使用 nginx -s reload 热部署,利用nginx进行热部署操作 2.每一个worker都是独立的进程,其中一个挂了,不会影响到其他的worker的正常争抢,不会造成服务中断 2.设置多少个worker worker数与cpu数相等最合适; 3.连接数worker_connections 1.发送请求会占用worker的多少个连接数 两个或者四个 2.计算最大并发数公式: 普通静态资源访问:worker_connections*worker_processes/2 http做反向代理时:worker_connections*worker_processes/4
![](https://img2020.cnblogs.com/blog/1661773/202011/1661773-20201108015030682-1406898320.png)
![](https://img2020.cnblogs.com/blog/1661773/202011/1661773-20201108015046795-240678178.png)
![](https://img2020.cnblogs.com/blog/1661773/202011/1661773-20201108015057427-94677802.png)
![](https://img2020.cnblogs.com/blog/1661773/202011/1661773-20201108015105357-2005492859.png)