Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供IMAP/POP3/SMTP服务。其特点是占有内存少,并发能力强。
如果我们在项目中用到了Nginx,那么可以用如下的示意图表示:
在这样的一个架构当中,Nginx就被叫做负载均衡服务器或者是反向代理服务器,所有的请求首先会被Nginx给拦截到,然后再由Nginx根据之前配置好的转发规则来将客户端的请求转发到某一个tomcat上去。
那么什么是负载均衡呢,什么又是反向代理呢,那么有没有正向代理呢?下面我来一一解释:
所谓正向代理就是顺着代理的方向进行的代理,即代理服务器他是由你配置为你服务,去请求目标服务器地址。比如说我们要去访问谷歌,我们直接访问访问不了,那么我们就需要一 个代理服务器来为我们服务相当于中间商。我们可以通过代理服务器来请求谷歌,但是对于谷歌来说,它只知道有一个服务器访问了自己,并不知道你是通过代理服务器访问到的。这个也就是正向代理。
所谓反向代理,顾名思义和正向代理相反。正向代理中的代理服务器是为客户端服务的,而反向代理则是为目标服务器来服务的。
比如说我们访问博客园,博客园的代理服务器对外的域名https://www.cnblogs.com。具体的内部服务器结点我们不知道。实际上,我们访问博客园的代理服务器之后,代理服务器给我们转发请求到他们的很多个服务器结点其中的一个然后将数据或者结果来给我们返回。
这个时候我们可以看出,反向代理中,反向代理服务器和网站其它的服务器是一个系统的,它们一起对外来提供服务,所以被称作反向代理。而正向代理则和网站服务器不是一个系统的。
负载均衡指的是由多台服务器以对称的方式组成一个服务器集合,每台服务器具有等价的地位都可以单独对外供应效力而无需其它服务器的辅助。经过某种负载分管技术,将外部发送过来的请求均匀分配到对称结构中的某一台服务器上,而接收到请求的服务器独立地回应客户的请求。
可以这样来说,当一台服务器的单位时间内的访问量越大的时候,服务器的压力就会越大,大到超越自身能力的时候服务器就会崩溃。为了避免服务器崩溃,让用户有更好的体验,通过负载均衡的方式来分担服务器的压力。
我们可以建立很多个服务器,从而来组成一个服务器集群,当用户访问网站的时候,先访问一个中间服务器,在让中间服务器在服务器集群中选择一个压力较小的服务器,然后将该访问的请求引入该服务器。如此以来,用户的每一次访问都会保证服务器集群中的每一个服务器压力趋向于平衡,分担了服务器的压力,避免了服务器崩溃的情况。
前提条件:nginx源码或nginx plus源码、一个代理服务器或一个代理服务器组、SSL证书和私钥,你可以从一个可信任证书颁发机构(CA)购买一个服务器证书,或者你可以使用openssl库创建一个内部CA签名
查看nginx模块,如果看到with-ssl那就是有的。注册ssl证书并下载,配置nginx就比如说,还没有配置https前你配置了80,那么你http://域名/直接默认访问80端口,那么一样的
首先让nginx服务器监听两个端口,分别是80端口和443端口,注意监听443端口的时候需要配置证书的认证以及创建自签名证书!关于证书的认证的以及创建自签名的证书,nginx的配置如下,只给出了两个server的配置,可以直接复制到http块中。
常见的服务器有三种:Nginx、IIS、Apache,都可以配置https,但是没必要全部知道,因为Nginx可以起到反向代理的作用,会配置Nginx就足够了。在/etc/nginx/conf.d目录下新建https.conf
开启Gzip:给Nginx上 ngx_http_gzip_module 这个模块,用 nginx -V 命令查看 configure arguments 是否有,没有的话需要编译加载这个模块;给文件做缓存:图片文件,字体文件,js和css都是些可以用来缓存的文件
ginx和php-fpm对于-USR2、-HUP信号的处理方式不一样:TERM, INT(快速退出,当前的请求不执行完成就退出),QUIT (优雅退出,执行完当前的请求后退出)
php-fpm采用master/worker架构设计, master进程负责CGI、PHP公共环境的初始化及事件监听操作。worker进程负责请求的处理功能。在worker进程处理请求时,无需再次初始化PHP运行环境,这也是php-fpm性能优异的原因之一
总有一些不怀好意的人来访问我的网站,而且频率还很高,所以就用简单的方式禁止访问,就用 Nginx 来实现。想要添加黑名单,只要在 blocksip.conf 中添加 IP ,然后 reload 即可。
客户端就可以通过请求代理服务器,获取想要的资源,但客户端并不知道给他资源的是哪个服务器。这种方式就是反向代理。当一台服务器的单位时间内的访问量越大的时候,服务器的压力会越大。我们通常通过负载均衡的方式来分担服务器的压力。
Nginx作为反向代理服务器,就是把http请求转发到另一个或者一些服务器上。通过把本地一个url前缀映射到要跨域访问的web服务器上,就可以实现跨域访问。对于浏览器来说,访问的就是同源服务器上的一个url
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!