Nginx奶爸式教程

1.什么是nginx

1.Nginx是高性能的HTTP和反向代理的服务器,处理高并发能力是十分强大的,能经受高负载的考验,有报告表明能支持高达 50,000个并发连接数。

2.正向代理

(1)需要在客户端配置代理服务器进行指定网站访问

客户在进行某些网址访问时,例如大陆用户访问geogle等外网需要翻墙,因此,需要在客户端配置代理服务器,以达到能够访问geogle外网的目的

3.反向代理

暴露的是代理服务器地址,隐藏了真实服务器IP地址。

例如上面的例子,我们不再访问谷歌,而是例如通过访问www.abc.com来访问谷歌

www.abc.com就是我们的反向代理服务器

3.1反向代理实例一

使用nginx反向代理,访问 www.123.com 直接跳转到127.0.0.1:8080 

在 nginx.conf 配置文件中的http块中增加如下配置

 server {
        listen       80;
        server_name  123.57.64.216;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
	    proxy_pass	http://127.0.0.1:8080;
            index  index.html index.htm;
        }

 3.2反向代理实例二

实现效果:使用nginx反向代理,根据访问的路径跳转到不同端口的服务中

nginx监听端口为9001,

访问 http://127.0.0.1:9001/edu/ 直接跳转到127.0.0.1:8081

访问 http://127.0.0.1:9001/vod/ 直接跳转到127.0.0.1:8082

步骤:

第一步,准备两个tomcat,一个8001端口,一个8002端口,并准备好测试的页面  

第二步,修改nginx的配置文件 在http块中添加server{} 

 location指令说明

 该指令用于匹配 URL。

 语法如下:  

1、= :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求。

 2、~:用于表示 uri 包含正则表达式,并且区分大小写。

 3、~*:用于表示 uri 包含正则表达式,并且不区分大小写。

 4、^~:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location 块中的正则 uri 和请求字符串做匹配。  

注意:如果 uri 包含正则表达式,则必须要有 ~ 或者 ~* 标识。

例如上例中,/edu/表示匹配url中带有/edu/的地址

4.负载均衡

增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器,也就是我们所说的负载均衡 。

负载均衡实例

浏览器地址栏输入地址 http://208.208.128.122/edu/a.html,负载均衡效果,平均 8081 和 8082 端口中。

在 nginx 的配置文件中进行负载均衡的配置

在http块中进行配置

代码如下 :

    upstream myserver {
        server 123.57.64.216:8081;
        server 123.57.64.216:8082;
    }
    server {
        listen       80;
        server_name  123.57.64.216;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            proxy_pass   http://myserver;
            #proxy_pass   http://127.0.0.1:8081;
            index  index.html index.htm;
    }

最终只需一个ip可来回切换两个服务器 进行操作

4. nginx 分配服务器策略
随着互联网信息的爆炸性增长,负载均衡(load balance)已经不再是一个很陌生的话题, 顾名思义,负载均衡即是将负载分摊到不同的服务单元,既保证服务的可用性,又保证响应 足够快,给用户很好的体验。快速增长的访问量和数据流量催生了各式各样的负载均衡产品, 很多专业的负载均衡硬件提供了很好的功能,但却价格不菲,这使得负载均衡软件大受欢迎, nginx 就是其中的一个,在 linux 下有 Nginx、LVS、Haproxy 等等服务可以提供负载均衡服 务,而且 Nginx 提供了几种分配方式(策略):

a. 轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。
配置方式:

b. weight
weight 代表权重, 默认为 1,权重越高被分配的客户端越多

c. ip_hash

ip_hash 每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器

d. fair(第三方)

fair(第三方),按后端服务器的响应时间来分配请求,响应时间短的优先分配。

   upstream myserver {
        server 123.57.64.216:8081 weight=10;
        server 123.57.64.216:8082 weight=20;
#fair
#ip_hash
    }
    server {
        listen       80;
        server_name  123.57.64.216;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            proxy_pass   http://myserver;
            #proxy_pass   http://127.0.0.1:8081;
            index  index.html index.htm;
    }

5.动静分离

我们访问css,html,js等静态资源时,将不再访问tomcat,而是将这些静态资源存到服务器端,通过ngnix去访问静态资源,而不再经过tomcat去获取。

动静分离实例

Nginx 动静分离简单来说就是把动态跟静态请求分开,不能理解成只是单纯的把动态页面和 静态页面物理分离。严格意义上说应该是动态请求跟静态请求分开,可以理解成使用 Nginx 处理静态页面,Tomcat 处理动态页面。动静分离从目前实现角度来讲大致分为两种:

一种是纯粹把静态文件独立成单独的域名,放在独立的服务器上,也是目前主流推崇的方案;

另外一种方法就是动态跟静态文件混合在一起发布,通过 nginx 来分开。
 

 

即可通过nginx访问静态资源,而不需要通过tomcat

 

6.安装ngnix

1.到官网下载ngnix的压缩包,切记不要再下载1.12版本以下的了,现在的centos系统已不太支持这种低版本,如果下载的是低版本的,后期会报错,建议使用1.16版本以上!!!! 

http://nginx.org/ icon-default.png?t=M1L8http://nginx.org/ 2.安装ngnix的相关依赖

pcre-8.3.7.tar.gz, openssl-1.0.1t.tar.gz, zlib-1.2.8.tar.gz, nginx-1.11.1.tar.gz

使用yum命令来安装

 yum -y install gcc pcre-devel zlib-devel openssl openssl-devel

使用yum命令安装时可能会报错,问题就出在centos版本更新导致的低版本配置文件不支持

,详情可参考博主的另一篇博客,时空之门已准备好。

阿里云服务器使用yum指令安装时报yum版本错误_阿狗哲哲的博客-CSDN博客[root@iZ2ze7jmwvt3idtkejd26yZ src]# yum -y install gcc pcre-devel zlib-devel openssl openssl-develCentOS-8 - AppStream 7.3...https://blog.csdn.net/qq_52438590/article/details/123300378?spm=1001.2014.3001.5501(3)安装nginx

* 使用命令解压后,运行下面两条语句

   ./configure 
make && make install

进入目录 /usr/local/nginx/sbin/nginx 启动服务 

详细的启动ngnix以及打开防火墙端口号的方法,已经放在另一篇博客

linux常用操作命令(持续完善ing)_阿狗哲哲的博客-CSDN博客后端人员最实用的Linux命令都在这,确定不点个收藏?????https://blog.csdn.net/qq_52438590/article/details/123301973?spm=1001.2014.3001.5502tip:ngnix默认访问的端口号是80

防火墙放开80端口后即可访问ip地址,如果出现ngnix的欢迎页,即为配置成功

7.nginx.conf 配置文件 

根据上述文件,我们可以很明显的将 nginx.conf 配置文件分为三部分:

第一部分:全局块

 从配置文件开始到 events 块之间的内容,主要会设置一些影响nginx 服务器整体运行的配置指令,主要包括配置运行 Nginx 服务器的用户(组)、允许生成的 worker process 数,进程 PID 存放路径、日志存放路径和类型以及配置文件的引入等。  比如上面第一行配置的: 

 这是 Nginx 服务器并发处理服务的关键配置,worker_processes 值越大,可以支持的并发处理量也越多,但是会受到硬件、软件等设备的制约 

 第二部分:events块 

 events 块涉及的指令主要影响 Nginx 服务器与用户的网络连接,常用的设置包括是否开启对多 work process 下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型来处理连接请求,每个 word process 可以同时支持的最大连接数等。  上述例子就表示每个 work process 支持的最大连接数为 1024.  这部分的配置对 Nginx 的性能影响较大,在实际中应该灵活配置。

 第三部分:http块

 这算是 Nginx 服务器配置中最频繁的部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里。  需要注意的是:http 块也可以包括 http全局块、server 块。

①、http 全局块  

http全局块配置的指令包括文件引入、MIME-TYPE 定义、日志自定义、连接超时时间、单链接请求数上限等。 

②、server 块  

这块和虚拟主机有密切关系,虚拟主机从用户角度看,和一台独立的硬件主机是完全一样的,该技术的产生是为了节省互联网服务器硬件成本。

 每个 http 块可以包括多个 server 块,而每个 server 块就相当于一个虚拟主机。

 而每个 server 块也分为全局 server 块,以及可以同时包含多个 locaton 块。

 1、全局 server 块

 最常见的配置是本虚拟机主机的监听配置和本虚拟主机的名称或IP配置。

 2、location 块  

一个 server 块可以配置多个 location 块。  这块的主要作用是基于 Nginx 服务器接收到的请求字符串(例如 server_name/uri-string),对虚拟主机名称(也可以是IP别名)之外的字符串(例如 前面的 /uri-string)进行匹配,对特定的请求进行处理。地址定向、数据缓存和应答控制等功能,还有许多第三方模块的配置也在这里进行。 

8.高可用的集群

暂时用不到,具体学习可参照下面的博客

主要步骤

1.需要两台服务器

2.通过yum安装keepalived

3.修改keepalived的配置文件

4.添加检测脚本

5.开启ngnix和keepalived

6.进行测试

nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全_冯安晨-CSDN博客_nginx 反向代理配置文件文章目录前言一、nginx简介1. 什么是 nginx 和可以做什么事情2.Nginx 作为 web 服务器3. 正向代理4. 反向代理5. 动静分离6.动静分离二、Nginx 的安装三、 Nginx 的常用命令和配置文件四、 Nginx 配置实例 1 反向代理五、 Nginx 配置实例 2 负载均衡六、 Nginx 配置实例 3 动静分离七、 Nginx 的高可用集群前言一、nginx简介...https://blog.csdn.net/qq_40036754/article/details/102463099?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164654402416780274195797%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=164654402416780274195797&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-102463099.pc_search_insert_es_download&utm_term=nginx&spm=1018.2226.3001.4187

9.Ngnix的原理

参考大佬文档,ngnix的一些原理小细节

nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全_冯安晨-CSDN博客_nginx 反向代理配置文件文章目录前言一、nginx简介1. 什么是 nginx 和可以做什么事情2.Nginx 作为 web 服务器3. 正向代理4. 反向代理5. 动静分离6.动静分离二、Nginx 的安装三、 Nginx 的常用命令和配置文件四、 Nginx 配置实例 1 反向代理五、 Nginx 配置实例 2 负载均衡六、 Nginx 配置实例 3 动静分离七、 Nginx 的高可用集群前言一、nginx简介...https://blog.csdn.net/qq_40036754/article/details/102463099?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164654402416780274195797%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=164654402416780274195797&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-102463099.pc_search_insert_es_download&utm_term=nginx&spm=1018.2226.3001.4187

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值