官网:https://nginx.org/
到Nginx官网下载Nginx安装包,地址为https://nginx.org/en/download.html(我们以1.16.1为例)
2.1 在linux系统上新建一个文件夹用来暂时存放我们的安装包
mkdir /opt/mysoftwear
2.2 利用Xftp把下载好的文件传输至Linux系统的 /opt/mysoftwear目录下
2.3 因为Nginx是C编写的,所以安装时需要下载Nginx安装依赖包
yum -y install gcc pcre-devel openssl openssl-devel
2.4 解压到 usr/local/文件夹下
tar -zxvf /opt/mysoftwear/nginx-1.16.1.tar.gz -C /usr/local/
2.5 安装
- cd /usr/local/nginx-1.16.1
-
- /usr/local/nginx-1.16.1/configure --prefix=/usr/local/nginx
-
- //编译并安装
- make && make install
/usr/local/nginx/sbin/nginx -v
在Nginx服务之前,可以先检查一下conf/nginx.conf文件配置的是否有错误,命令如下:
/usr/local/nginx/sbin/nginx -t
- //启动Nginx服务:
- /usr/local/nginx/sbin/nginx
-
- //关闭Nginx服务
- /usr/local/nginx/sbin/nginx -s stop
-
- //启动之后查看一下Nginx服务的进程
- ps -ef | grep nginx
接下来我们首先查看一下Linux的80端口是否打开,若没有打开,我们可以选择 打开80端口 或 直接关闭Linux防火墙(任选其一)来访问一下Nginx的首页面,若是打开状态,直接跳过。
- //查看80端口是否打开
- firewall-cmd --query-port=80/tcp //no表示未打开 yes表示已打开
-
- //打开80端口
- firewall-cmd --add-port=80/tcp
-
- //关闭防火墙
- systemctl stop firewalld
/usr/local/nginx/sbin/nginx -s reload
vim /etc/profile
nginx配置文件(conf/niginx.conf)由于配置文件比较复杂,我们把配置文件分为三部分:
一个 http块中可以有多个server块,一个server块中也可以有多个location块,关于他们有什么作用,这里先不细讲,大家先把配置文件的结构捋清楚就行。
1、Nginx可以作为静态web服务器来部署静态资源。静态资源指在服务端真实存在并且能够直接展示的一些文件,比如常见的html页面、css样式文件、js文件、图片、视频等资源。
2、相对于Tomcat来说,Nginx处理静态资源的能力更加高效,所以在生产环境中,一般都会将静态资源部署到Nginx中。
3、将静态资源部署到Nginx非常简单,只需要将文件复制到Nginx安装目录下的html目录中即可。
我们进入html目录,随便创建一个html文件(相当于部署完成)
重启Nginx服务,到浏览器测试
我们修改一下Nginx的默认首页
这里我们看到中文乱码了,解决方法:在server全局配置和location配置中增加字符集设置
1、了解反向代理之前先了解一下什么是正向代理
2、反向代理
3、正向代理与反向代理的区别
正向代理是在客户端设置代理服务器,客户端知道有代理服务器和目标web服务器的存在,只知道访问了一个服务器,并返回了资源;反向代理的过程中客户端并不知道代理服务器的存在,客户端只需要访问反向代理服务器,此时反向代理服务器把请求转发到被代理的目标web服务器,目标代理服务器把响应的数据和结果返回给反向代理服务器,反向代理服务器再把响应数据和结果返回到客户端。
说简单点就是:
正向代理:(客户端+代理服务器)访问(web服务器)帮助客户访问服务器
反向代理: (客户端)访问(代理服务器+web服务器)
4、配置反向代理(在nginx的配置文件中新增加一个server块,监听82端口)
1、接下来再准备一台服务器192.168.80.132,(我是用的虚拟机,所以直接添加一台虚拟机,来部署一个简单的web应用),将idea中的web应用用maven打成jar包
- //在idea终端中输入以下maven命令
- maven clean package
2、web应用仓库地址:nginx_proxy: 用于测试nginx反向代理
3、接下来我们需要在这台服务器上安装JDK,用于运行jar,安装教程:Linux安装JDK教程
4、将上面打的jar包拷贝至Linux虚拟机的某个目录(我直接放在/路径下)
5、运行jar
java -jar jar包的名字(按Tab键补全)
6、在浏览器地址栏输入192.168.80.132:8080/hello,查看是否成功
(注意,若这一步你是404的话,可能是linux的8080端口没打开,输入下面命令打开端口,再次到浏览器测试就成功了)
firewall -cmd --add-port=8080/tcp
7、打开代理服务器的82端口
- //先把nginx的配置文件重新加载一遍
- nginx -s reload
-
- //开启82端口
- firewall-cmd --add-port=82/tcp
8、在浏览器端访问:192.168.80.100:82/hello,访问成功!
1、负载均衡简介
我们通过了解负载均衡示意图,可以看出负载均衡就是基于反向代理来实现的,本质上就是反向代理,只不过后面对的不是一台服务器,而是多台服务器。负载均衡器可以根据负载均衡相应的算法把请求分配到具体的某一台web服务器上去。
2、配置文件(这里我们用被代理的服务器的两个不同端口模拟两个服务器)
配置好以后,重新加载nginx的配置文件,然后去浏览器访问:192.168.80.100:8080/hello,每次刷新就会发现每次代理服务器分配到的端口都不一样,8080端口和8081端口轮换着进行访问,这就是Nginx的轮询机制算法
除了轮询机制算法,负载均衡策略还有其他的负载均衡算法,就不一一演示了,下面解释的很清楚了。