大家好,置最我是全详mikechen 。 Nginx是置最非常重要的负载均衡中间件,被广泛应用于大型网站架构,全详下面我就全面来详解Nginx配置 。置最 NginxNginx是全详一个高性能的HTTP和反向代理服务器,特点是置最占用内存少,并发能力强,全详事实上Nginx的置最并发能力确实在同类型的网页服务器中表现好 。服务器租用 Nginx专为性能优化而开发,全详性能是置最其最重要的考量 ,实现上非常注重效率 ,全详能经受高负载的置最考验 ,有报告表明能支持高达50000个并发连接数。全详 Nginx功能1.正向代理需要客户自己在浏览器配置代理服务器地址 。置最 例如:在大陆访问www.google.com,我们需要一个代理服务器 ,我们通过代理服务器去访问谷歌 ,这个过程就是正向代理 。 2.反向代理反向代理,客户端对代理是云计算无感知的 ,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器。 由反向代理服务器去选择目标服务器获取数据后 ,在返回给客户端 ,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址 ,隐藏了真实服务器IP地址。 3.负载均衡单个服务器解决不了,我们增加服务器的数量,然后将请求分发到各个服务器上 。免费模板
将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器 ,也就是我们说的负载均衡。 4.动静分离为了加快网站的解析速度 ,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度,降低原来单个服务器的压力 。 Nginx配置Nginx配置文件所在位置:/usr/local/nginx/conf/nginx.conf 。 1.配置文件组成由全局块+events块+http块组成 。建站模板
2.全局块从配置文件开始到events之间的内容,主要会设置一些影响Nginx服务器整体运行的配置指令。 主要包括配置运行Nginx服务器的用户(组) 、允许生成的worker process数,进程pid存放路径 、日志存放路径和类型以及配置文件的引入等。 复制worker_processes 1; #这个是Nginx服务器并发处理服务的关键配置 ,worker_processes值越大,可以支持的亿华云并发处理量越多 ,但是会受到硬件 、软件等设备的制约 。1.2.3.events块events块设计的指令主要影响Nginx服务器与用户的网络连接 。 常用的设置包括是否开启对多work process下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型来处理连接请求,每个work process可以同时支持的源码库最大连接数等 下面的例子表示每个work process支持的最大连接数为1024,这部分配置对Nginx的性能影响较大,在实际中应该灵活配置 。 复制events { worker_connections 1024; }1.2.3.4.http块Nginx服务器配置中最频繁的部分 ,代理 、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里 ,http块又包括http全局块和server块 。 4.1 http全局块http全局块配置的指令包括文件引入 、MIME-TYPE定义、日志自定义、连接超时时间、单链接请求数上限等 。 4.2 server块这块和虚拟主机有密切关系 ,虚拟主机从用户角度看,和一台独立的硬件主机是完全一样的,该技术的产生是为了节省互联网服务器硬件成本。 每个http块可以包括多个server块 ,而每个server块就相当于一个虚拟主机。 每个server块也可以分为全局server块,以及可以同时包含多个location块 。 1)全局server块 最常见的配置时本虚拟主机的监听配置和本虚拟主机的名称或IP配置 。 2) location块 一个server块可以配置多个location块。 这块的主要作用是基于Nginx服务器接收到的请求字符串(例如server_name/uri-string) ,对虚拟主机名称(也可以是IP别名)之外的字符串(例如前面的/uri-string)进行匹配 ,对特定的请求进行处理。地址定向、数据缓存和应答控制等功能 ,还有许多第三方模块的配置也在这里进行。 Nginx反向代理配置实例1.目标访问http://ip,访问到的是Tomcat的主页面http://ip:8080。 2.环境Nginx+JDK8+Tomcat 3. 配置文件复制worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; #server_name localhost; server_name 192.168.71.167; location / { root html; #添加下面的一句话 proxy_pass http://127.0.0.1:8080; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.4.重新加载Nginx配置文件复制/usr/local/nginx/sbin/nginx -s reload1.5.测试访问:http://192.168.71.167/,看到的是Tomcat的首页 。 Nginx负载均衡配置实例1.目标通过访问http://192.168.71.167/edu/a.html,实现负载均衡的效果 ,平均分摊到8080和8081端口中 。 2.环境Nginx+JDK8+2台Tomcat,一台8080 ,一台8081。 3.配置文件复制worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; upstream myserver{ #ip_hash; server 192.168.71.167:8080 weight=1; server 192.168.71.167:8081 weight=1; } server { listen 80; #server_name localhost; server_name 192.168.71.167; location / { root html; proxy_pass http://myserver; proxy_connect_timeout 10; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.4.测试访问 :http://192.168.71.167/edu/a.html ,8080和8081交替访问。 5.负载常见策略1)轮询(默认)每个请求按时间顺序逐一分配到不同的后端服务器 ,如果后端服务器down掉,能自动剔除。 2)weightweight代表权重,默认为1,权重越高被分配的客户端越多 。 指定轮询几率 ,weight和访问比率成正比,用于后端服务器性能不均的情况。 3)ip_hash每个请求按访问IP的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题 ,示例如下 : 复制upstream myserver{ ip_hash; server 192.168.71.167:8080 weight=1; server 192.168.71.167:8081 weight=1; }1.2.3.4.5. 4)fair(第三方)按后端服务器的响应时间来分配请求,响应时间短的优先分配。 复制upstream myserver{ fair; server 192.168.71.167:8080 weight=1; server 192.168.71.167:8081 weight=1; }1.2.3.4.5.Nginx动静分离配置实例复制worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name 192.168.71.167; location /www/ { root /data/; index index.html index.htm; } location /image/ { root /data/; autoindex on; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.Nginx高可用集群配置实例1.环境准备两台机器,每台机器都装有keepalived+Nginx+Tomcat 。 2.安装keepalived复制yum -y install keepalived #检查是否安装 rpm -q -a keepalived #安装的配置文件位置 /etc/keepalived/keepalived.conf #启动和关闭 systemctl start keepalived systemctl stop keepalived1.2.3.4.5.6.7.8.3.完成高可用配置主备keepalived服务器中只有master一台机器会出现VIP地址 ,否则会出现脑裂问题。 4.主keepalived的配置复制global_defs { notification_email { acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 192.168.200.1 smtp_connect_timeout 30 router_id 192.168.71.167 } vrrp_script nginx_check { script "/usr/local/src/nginx_check.sh" #(每秒检查一次) interval 1 weight -30 } vrrp_instance VI_1 { state MASTER interface ens33 #虚拟路由ID,小于255 ,最终用于构成虚拟MAC地址,必须与backup一致 virtual_router_id 51 #优先级 ,0-254 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.71.100 } track_script { nginx_check } }1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.5.keepalived的配置复制global_defs { notification_email { acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 192.168.200.1 smtp_connect_timeout 30 router_id 192.168.71.168 } vrrp_script nginx_check { script "/usr/local/src/nginx_check.sh" #(每秒检查一次) interval 1 weight 2 } vrrp_instance VI_1 { state backup interface ens33 #虚拟路由ID,小于255,最终用于构成虚拟MAC地址 ,必须与backup一致 virtual_router_id 51 #优先级,0-254 priority 80 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.71.100 } track_script { nginx_check } }1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.以上 ,涵盖了一些配置实例、和常见的用例,可以根据实际的情况来自己选择。 |
雨林木风装机教程(一步步教你如何选择雨林木风配件,组装一台性能出色的电脑)摩尔线程与浙江华数战略合作:助力“智慧浙江”实现SwatchTouch(探索SwatchTouch的无限可能)Win10硬盘装系统教程(详细步骤教你在Win10上进行硬盘装系统)如何装配和固态硬盘的完整教程(从购买到安装的一步步指南,让你的电脑速度翻倍)iOS系统升级——6s9.3.2与10.3.1的对比(探索新旧系统之间的优劣与差异)神舟笔记本硬盘分区教程(一键分区,自定义存储,释放笔记本潜力)利用数据中心可以发展什么行业ARM服务器之战即将爆发:AWS正面对阵微软Win10U官方安装教程(从零开始,快速学习Win10系统的安装与配置方法)源码库亿华云企业服务器网站建设香港物理机b2b信息平台云服务器