前言
介绍:
Nginx是一款轻量级的Web服务器反向代理服务器,特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
Nginx作为web服务器:
Nginx.可以作为静态页面的web服务器,同时还支持CGI协议的动态语言,比如perl、php等。但是不支持
java.。Java程序只能通过与tomcat配合完成。Nginx专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率,能经受高负载的考验,有报告表明能支持高达50, 000个并发连接数。
注意!Nginx不支持java!Java程序只能通过与tomcat配合完成
关于Nginx的相关概念:
正向代理:
在介绍反向代理之前,先介绍一下正向代理:
就是说:如果我们进行访问谷歌没法访问,我们可以配置代理服务器,进行访问谷歌。
正向代理反向代理:
就是说:服务器本身不进行暴露,而是设置了一个反向代理的服务器,当客户端访问服务器时,反向代理服务器再进行请求转发到tomcat服务器上!
反向代理说说正向代理和反向代理的区别:
正向代理隐藏真实客户端,反向代理隐藏真实服务端!
详细解答:https://www.zhihu.com/question/24723688/answer/128105528
负载均衡:
将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器,也就是我们所说的负载均衡。
3.png动静分离:
为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度。降低原来单个服务器的压力。
负载均衡
安装
1、在Nginx官网http://nginx.org/en/download.html中下载linux对应的版本。
2、安装几个环境
- 安装pcre
wget https://sourceforge.net/projects/pcre/files/pcre/8.37/pcre-8.37.tar.gz
下载后会出现在/root下,把该压缩包移动到/usr/src/目录下,并使用以下命令进行解压:
tar -xvf pcre-8.37.tar.gz
#解压后,进入该解压目录
[root@iZ2zeeqh1fctjw2bhzgjnaZ src]# cd pcre-8.37
#进行一个检查环境的操作,注意这一步,会有些环境没有安装,按网上提示安装gcc等等
#尝试这个安装yum install -y gcc gcc-c++
[root@iZ2zeeqh1fctjw2bhzgjnaZ pcre-8.37]# ./configure
#只有上一步环境检查都通过了,这一步才可以执行,否则就会报错!
[root@iZ2zeeqh1fctjw2bhzgjnaZ pcre-8.37]# make && make install
#安装好pcre后,用以下命令查看当前版本
[root@iZ2zeeqh1fctjw2bhzgjnaZ pcre-8.37]# pcre-config --version
8.37
- 安装其他的依赖
yum -y install make zlib zlib-devel gcC-C++ libtool openssl openssl-devel
- 安装Nginx
#(1)把nginx安装文件放到linux系统中,
#(2)解压压缩文件。
tar -xvf nginx-1.12.2.tar.gz
#(3)进入解压之后目录,执行./configure
./configure
#(4)使用make && make installs
安装成功之后,会在/usr/local目录下看见Nginx文件夹
5.png#完成安装之后,我们启动nginx
[root@iZ2zeeqh1fctjw2bhzgjnaZ sbin]# pwd
/usr/local/nginx/sbin#在这个目录下
[root@iZ2zeeqh1fctjw2bhzgjnaZ sbin]# ./nginx
[root@iZ2zeeqh1fctjw2bhzgjnaZ sbin]# ps -ef | grep nginx
root 26166 1 0 23:32 ? 00:00:00 nginx: master process ./nginx
nobody 26167 26166 0 23:32 ? 00:00:00 nginx: worker process
root 26177 15953 0 23:32 pts/0 00:00:00 grep --color=auto nginx
[root@iZ2zeeqh1fctjw2bhzgjnaZ conf]# pwd
/usr/local/nginx/conf
[root@iZ2zeeqh1fctjw2bhzgjnaZ conf]# ls
fastcgi.conf koi-utf nginx.conf uwsgi_params
fastcgi.conf.default koi-win nginx.conf.default uwsgi_params.default
fastcgi_params mime.types scgi_params win-utf
fastcgi_params.default mime.types.default scgi_params.default
[root@iZ2zeeqh1fctjw2bhzgjnaZ conf]# vim nginx.conf
#在这个配置文件中,可以看到端口为80
查看端口是80
注意:我们需要把阿里云的安全组打开80端口号后,才可以访问!
欢迎页常用的命令
#使用Nginx必须先要进入/usr/local/nginx/sbin下:
#查看nginx版本号
[root@iZ2zeeqh1fctjw2bhzgjnaZ sbin]# ./nginx -v
nginx version: nginx/1.12.2
#启动nginx
[root@iZ2zeeqh1fctjw2bhzgjnaZ sbin]# ./nginx
#停止nginx
[root@iZ2zeeqh1fctjw2bhzgjnaZ sbin]# ps -ef | grep nginx
#先查看当前运行的nginx
root 26166 1 0 23:32 ? 00:00:00 nginx: master process ./nginx
nobody 26167 26166 0 23:32 ? 00:00:00 nginx: worker process
root 26458 15953 0 23:45 pts/0 00:00:00 grep --color=auto nginx
#进行关闭
[root@iZ2zeeqh1fctjw2bhzgjnaZ sbin]# ./nginx -s stop
#关闭后再次查看
[root@iZ2zeeqh1fctjw2bhzgjnaZ sbin]# ps -ef | grep nginx
root 26463 15953 0 23:45 pts/0 00:00:00 grep --color=auto nginx
#重加载,如果更改了配置文件,不需要重启服务器
[root@iZ2zeeqh1fctjw2bhzgjnaZ sbin]# ./nginx -s reload
Nginx配置文件
位置
配置文件配置文件组成
第一部分 全局块
全局块介绍:从配置文件到event块,主要会配置一些影响nginx服务器整体运行的配置命令。
比如worker_processes 1,值越大,可以支持的并发数量就越高
第二部分 events块
介绍:events块涉及Nginx服务器与用户的网络连接。
比如:work_connections 1024;支持最大的连接数。
第三部分http块
这算是!Nginx服务器配置中最频繁的部分, 代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里。
需要注意的是: http块也可以包括http全局块、server 块。
Nginx实例:反向代理测试1
1、环境配置:首先在服务器上安装tomcat和Nginx,并且开放端口号
2、访问的过程分析
反向代理13、具体配置
在本机中找到如下的文件夹:
1592012953639.png
在最后一行添加如下的数据,相当于访问szw.com重定向到服务器的ip地址。
文件地址在nginx.conf中进行配置:
修改本机域名
注意:这里测试并没有成功...
Nginx实例:反向代理测试2
两种地址下的配置题目:当网址最后包含edu,跳转到8080端口的tomcat下,如果包含vod,跳转到8081下。
还是找到配置文件,重新写一个server,进行配置,~,是正则表达式。注意,不论是本机还是服务器都需要开放端口号!
负载均衡
动静分离
动静分离动静分离介绍
Nginx动静分离简单来说就是把动态跟静态请求分开,不能理解成只是单纯的把动态页面和
静态页面物理分离。严格意义上说应该是动态请求跟静态请求分开,可以理解成使用Nginx
处理静态页面,Tomcat 处理动态页面。动静分离从目前实现角度来讲大致分为两种,。
-种是纯粹把静态文件独立成单独的域名,放在独立的服务器上,也是目前主流推崇的方案;.
另外一种方法就是动态跟静态文件混合在一起发布,通过nginx 来分开。。
这种做法的意义?
提高访问的效率,动态就访问tomcat,静态就专门访问静态资源。
特点
通过location指定不同的后缀名实现不同的请求转发。通过expires 参数设置,可以使用浏览器缓存过期时间,减少与服务器之前的请求和流量。具体Expires定义:是给一个资源设定一个过期时间,也就是说无需去服务端验证,直接通过浏览器自身确认是否过期即可,所以不会产生额外的流量。此种方法非常适合不经常变动的资源。( 如果经常更新的文件,不建议使用Expires 来缓存),我这里设置3d,表示在这3天之内访问这个URL,发送一个请求,比对服务器该文件最后更新时间没有变化,则不会从服务器抓取,返回状态码304,如果有修改,则直接从服务器重新下载,返回状态码200。
实现
在linux服务器中准备静态资源,注意:不用放在tomcat下。
静态资源的存放地址
具体操作
暂时保存~~~在测试nginx的时候,配置文件一直报错...
网友评论