Nginx(engine x)是一个轻量级高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务,其特点是占有内存少,并发能力强,事实上Nginx的并发能力在同类型的网页服务器中表现较好,Nginx是一个安装非常简单、配置文件非常简洁,(支持perl语法)、Bug非常少的服务。Nginx启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够不间断服务的情况下进行软件版本的升级。
Nginx代码完全用C语言从头写成。官方数据测试表明能够达到高达50,000个并发连接的响应。
Http代理,反向代理:作为Web服务器最常用的功能之一,尤其是反向代理,反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器可以获得目标服务器的资源,反向代理服务器负责将请求转发给目标服务器。用户不需要知道目标服务器的地址,也无须在用户端做任何设定。
反向代理
Nginx提供的负载均衡策略有2种:内置策略和扩展策略。
内置策略为轮询,加权轮询,Ip hash。
扩展策略,就天马行空,只有你想不到的没有你做不到的。
轮询
加权轮询
iphash对客户端的ip进行hash操作,然后根据hash结果将同一个客户端ip的请求分发给同一台服务器进行处理,可以解决session不共享的问题。
动静分离,在软件开发中,有些请求是需要后台处理的,有些请求是不需要经后台处理的(如:css、html、js 等文件),这些不需要后台处理的文件称为静态文件。让动态网站里的动态网页一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,就可以根据静态资源的特点将其做缓存操作。提高资源响应的速度。
下载nginx官网链接下载稳定版本。找系统对应的版本。
nginx.exe
,回车即可nginx -s reload
即可让改动文件生效nginx -s stop
(快速停止nginx)或nginx -s quit
(完整有序的停止nginx)taskkill /f /t /im nginx.exe
1.taskkil是用来终止进程的。
2. /f是强制终止
3. /t终止指定的进程和任何由此启动的子进程
4. /im示指定的进程名称
yum install gcc-c++
yum install -y pcre pcre-devel
3.zlib安装
zlib库提供了很多种压缩和解压缩的方式,nginx使用zib对http包内的内容进行gzip,所以需要在CentOS上安装zlib库。
yum install -y zlib zlib-devel
yum install -y oppenssl oppenssl-devel
yum install wget
wget http://nginx.org/download/nginx-1.20.2.tar.gz
tar -zxvf nginx-1.20.2.tar.gz
cd nginx-1.20.2
8. 配置
使用默认配置,在nginx根目录下执行,确保以上命令都执行
首先创建要安装的目录文件
mkdir -p /usr/local/nginx
安装到指定目录下
./configure --prefix=/usr/local/nginx
编译安装
make && make install
查看安装路径
whereis nginx
安装完Nginx后,Nginx的目录结构如图:
重点目录/文件:
cd /usr/local/nginx/sbin
./nginx -v
3.检查配置文件的正确性
./nginx -t
./nginx
./nginx -s stop
./nginx -s quit
ps aux|grep nginx
./nginx -s reload
vim /etc/profile
追加:
PAHT=/usr/local/nginx/sbin:$JAVA_HOME/bin:$PATH
保存生效:
source /etc/profile
启动成功访问 服务器ip:80
注意:
如果连接不上,检查云服务器安全组是否开放端口,或者服务器防火墙是否开放端口!
相关命令
11. # 开启
12. service firewalld start
13. # 重启
14. service firewalld restart
15. # 关闭
16. service firewalld stop
17. # 查看防火墙规则
18. firewall-cmd --list-all
19. # 查看端口是否开放
20. firewall-cmd --query-port=8080/tcp
21. # 开放80端口
22. firewall-cmd --permanent --add-port=80/tcp
23. # 移除端口
24. firewall-cmd --permanent --remove-port=8080/tcp
25. # 重启防火墙(修改配置后要重启防火墙)
26. firewall-cmd --reload
27. # 参数解释
28. firewall-cmd:是Linux提供的操作firewall的一个工具
29. --permanent:表示设置为持久
30. --add-port:标识添加的端口
整体结构介绍
Nginx配置文件(cong/nginx.conf)整体分为三部分:
Server块
Nginx可以作为静态web服务器来部署静态资源。静态资源 指在服务端真实存在并且能够直接展示的一些文件,比如常见的html文件、css文件、js文件、图片、视频等资源。
相对于Tomcat,Nginx处理静态资源的能力更加高效,所以在生产环境下,一般都会将静态资源部署到Nginx中。将静态资源部署到Nginx非常简单,只需要将文件复制到Nginx安装目录下的html目录中即可。
server {
listen 80; # 监听端口
server_name localhost; # 服务器名称
location /{ # 匹配客户端请求url
root html; # 指定静态资源根目录
index index.html; # 指定默认首页
}
}
server {
listen 82;
server_name localhost;
location /{
proxy_pass http://192.168.81.129:8080; #反向代理配置,将请求转发到指定服务
}
}
早期的网站流量业务功能都比较简单,单台服务器就可以满足基本要求,但是随着互联网的发展,业务流量越来越大并且业务逻辑越来越复杂,单台服务器的性能及单点故障问题就凸显出来了,因此需要多台服务器组成应用集群,进行性能的水平扩展以及避免单点故障的出现。
upstream targetserver{ # upstream指令可以定义一组服务器
server 192.168.81.129:8080;
server 192.168.81.129:8081;
}
server {
listen 80;
server_name localhost;
location /{
proxy_pass http://targetserver; #反向代理配置,将请求转发到指定服务
}
}
名称 | 说明 |
---|---|
轮询 | 默认方式 |
weight | 权重方式 |
ip_hash | 依据ip分配方式 |
least_conn | 依据最少连接方式 |
url_hash | 依据url分配方式 |
fair | 依据响应时间方式 |