Nginx
1 介绍
Nginx(“engine–x”)是一个高性能的开源反向代理服务器,也可以用作负载均衡器、HTTP缓存服务器和Web服务器。以下是关于Nginx的一些基本信息:
-
反向代理服务器: Nginx可以作为反向代理服务器,接受客户端请求并将其转发给后端服务器。它可以帮助处理静态文件、负载均衡、SSL终端等任务,提高系统性能和安全性。
-
负载均衡器: Nginx支持基于轮询、IP哈希、最小连接数等算法的负载均衡。通过分发请求到多个服务器,可以提高应用程序的可伸缩性和稳定性。
-
HTTP缓存服务器: Nginx可以缓存静态文件,降低对后端服务器的请求压力,提高网站性能。它支持各种缓存策略,如过期时间、刷新策略等。
-
Web服务器: 虽然Nginx在设计上更加注重反向代理和负载均衡,但它也可以作为独立的Web服务器使用。它支持静态和动态内容的处理,并能够通过FastCGI、uWSGI等与后端应用服务器进行通信。
-
高性能和低内存消耗: Nginx的事件驱动架构使其能够处理大量并发连接,同时保持较低的内存消耗。这使得Nginx成为处理高流量、高并发请求的理想选择。
-
模块化设计: Nginx采用模块化设计,允许用户通过添加模块来扩展其功能。它支持各种第三方模块,丰富了其功能,如安全性、性能优化等。
-
配置简单、易读: Nginx的配置文件采用简单的文本文件格式,易于理解和维护。其配置语法清晰,使得用户能够灵活地配置各种服务器行为。
2 Nginx 安装
-
wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz
tar –xvf pcre-8.37.tar.gz
./configure
yum install -y gcc gcc-c++
make && make install
pcre-config --version
-
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
-
安装 Nginx
下载地址:http://nginx.org/en/download.html
下载完后解压tar –xvf nginx-1.12.2.tar.gz
./configure make && make install
进入目录 /usr/local/nginx/sbin后,启动 Nginx
./nginx
systemctl stop firewalld
-
firewall-cmd --list-all
firewall-cmd --add-service=http –permanent firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --reload
-
./nginx -v
./nginx
./nginx -s stop
./nginx -s reload
3 nginx.conf 配置文件
nginx.conf
是Nginx的主配置文件,其中包含了Nginx服务器的全局配置、http块配置以及server块配置等。以下是对一些常见配置项的解释:
-
所处位置
/usr/local/nginx/conf/nginx.conf
-
user: 指定Nginx worker进程运行的用户和用户组。例如:
user www-data;
-
worker_processes: 指定Nginx启动的worker进程的数量。通常设置为服务器的CPU核心数。
worker_processes 1;
-
error_log: 指定Nginx的错误日志文件路径。例如:
error_log /var/log/nginx/error.log;
-
pid /var/run/nginx.pid;
-
events: 定义Nginx处理连接、请求等事件的方法。常见配置项有
worker_connections
,表示每个worker进程能够同时处理的连接数。例如:events { worker_connections 1024; }
-
http块: 包括 http 全局块、server 块。常见配置项有
include
用于引入其他配置文件,server
用于配置虚拟主机。例如:http { include mime.types; default_type application/octet-stream; server { listen 80; server_name localhost; location / { root /usr/share/nginx/html; index index.html index.htm; } # 其他 server 配置... } # 其他 http 配置... }
-
include: 用于引入其他配置文件。这使得配置文件可以分为更小的模块,方便管理。例如:
include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*;
-
server: 定义虚拟主机的配置块,包含监听的端口、服务器名称、和处理请求的配置。例如:
server { listen 80; server_name example.com; location / { root /usr/share/nginx/html; index index.html index.htm; } # 其他 location 配置... }
4 正向代理和反向代理
4.1 正向代理
正向代理:如果把局域网外的 Internet 想象成一个巨大的资源库,则局域网中的客户端要访问 Internet,则需要通过代理服务器来访问,这种代理服务就称为正向代理。
4.2 反向代理
反向代理,其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器 IP 地址。
4.2.1 反向代理实例一
4.2.2 反向代理实例二
-
准备工作
准备两个 tomcat 服务器,一个 8080 端口,一个 8081 端口
创建文件夹和测试页面
在8080的edu文件夹添加a.html,内容为:8080!
-
配置 nginx.conf 文件
-
启动 nginx
-
测试
地址栏输入:http://192.168.64.128:9001/edu/a.html,结果如下:
地址栏输入:http://192.168.64.128:9001/vod/a.html,结果如下:
5 负载均衡
并发量特别大的时候容易造成服务器直接崩溃。这时候集群的概念产生了,单个服务器解决不了,我们增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器,也就是我们所说的负载均衡。
5.1 负载均衡实例
- 实现效果
浏览器地址栏输入地址 http://192.168.64.128/edu/a.html,负载均衡效果,平均 8080和 8081 端口中 - 准备工作
(1)准备两台 tomcat 服务器,一台 8080,一台 8081
(2)在两台 tomcat 里面 webapps 目录中,创建名称是 edu 文件夹,在 edu 文件夹中创建页面a.html,用于测试. - 配置 nginx.conf 文件进行负载均衡(默认轮询)
- 启动 nginx
- 测试
在地址栏输入http://192.168.64.128/edu/a.html,结果:
点击刷新:
5.2 nginx 分配服务器策略
-
轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。upstream myserver{ server 192.168.64.128:8080; server 192.168.64.128:8081; # 添加更多后端服务器... }
-
weight
weight 代表权重默认为 1,权重越高被分配的客户端越多upstream myserver{ server 192.168.64.128:8080 weight=3; server 192.168.64.128:8081 weight=1; # 添加更多后端服务器... }
-
ip_hash
每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器upstream myserver{ ip_hash; server 192.168.64.128:8080; server 192.168.64.128:8081; # 添加更多后端服务器... }
原文地址:https://blog.csdn.net/k010908/article/details/134504323
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_26734.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!