公告:魔扣目录网为广大站长提供免费收录网站服务,提交前请做好本站友链:【 网站目录:https://www.morko.net 】, 免友链快审服务(50元/站),

点击这里在线咨询客服
新站提交
  • 网站:51998
  • 待审:31
  • 小程序:12
  • 文章:1030137
  • 会员:747

一 Nginx简介

1.1 什么是Nginx

Nginx是一个高性能的http和反向代理服务器,其特点是占用内存小,并发能力强。Nginx专为性能优化而开发,性能是其最重要的考量,能经受高负载的考验,有报告表明能支持高达50000个并发连接数。

1.2 反向代理

正向代理:在浏览器中配置代理服务器,通过代理服务器进行互联网访问。

反向代理:将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,再返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴漏的是代理服务器地址。

1.3 负载均衡

如果请求数过大,单个服务器解决不了,我们增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器的情况改为请求分发到多个服务器上,就是负载均衡。

1.4 动静分离

为了加快服务器的解析速度,可以把动态页面和静态页面交给不同的服务器来解析,加快解析速度,降低原来单个服务器的压力。

二 Nginx的安装

Nginx需要几个依赖包,分别是pcreopensslzlib,在安装nginx之前需要先安装这几个依赖。

2.1 安装pcre依赖

  1. 使用命令下载pcre压缩包

1wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz

登录后复制

  1. 解压压缩文件

1tar -xvf  pcre-8.37.tar.gz

登录后复制

  1. 进入解压后的名录,执行以下命令

1./configure

登录后复制

  1. 使用以下命令进行编译安装

1make && make install

登录后复制

  1. 查看安装的pcre版本号

1pcre-config --version

登录后复制

2.2 安装openssl,zlib等依赖

1yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel

登录后复制

2.3 安装nginx

  1. nginx官网下载nginx,官网地址:https://nginx.org/download/;

  2. 将压缩包拖到服务器上;

  3. 使用命令tar -xvf nginx-1.12.2.tar.gz解压压缩包;

  4. 使用命令./configure检查;

  5. 使用命令make && make isntall编译安装;

安装成功后,在usr会多出来一个文件夹,local/nginx,在nginxsbin文件夹下有启动脚本。

2.4 启动nginx

/usr/local/nginx/sbin文件夹下,使用以下命令启动

1./nginx

登录后复制登录后复制

然后浏览器访问服务器ip,nginx默认端口是80,出现以下页面则证明nginx安装成功;

2.5 Nginx常用的命令

使用这些命令时需要进入/usr/local/nginx/sbin文件夹

  • 查看nginx的版本号

    1./nginx -v

    登录后复制

    • 启动nginx

      1./nginx

      登录后复制登录后复制

      • 关闭nginx

        1./nginx -s stop

        登录后复制

        • 重新加载nginx

          1./nginx -s reload

          登录后复制

          2.6 Nginx的配置文件

          nginx的配置文件在/usr/local/nginx/conf中的nginx.conf。我们将nginx.conf中注释的内容删除一下。

           1#user  nobody;
           2worker_processes  1;
           3
           4#pid        logs/nginx.pid;
           5
           6events {
           7    worker_connections  1024;
           8}
           9
          10http {
          11    include       mime.types;
          12    default_type  application/octet-stream;
          13
          14    sendfile        on;
          15    #tcp_nopush     on;
          16
          17    #keepalive_timeout  0;
          18    keepalive_timeout  65;
          19
          20    #gzip  on;
          21
          22    server {
          23        listen       80;
          24        server_name  localhost;
          25
          26        location / {
          27            root   html;
          28            index  index.html index.htm;
          29        }
          30    }
          31}

          登录后复制

          nginx的配置文件包含三部门。

          1.全局块

          从配置文件开始到events块之间的内容,主要会设置一些nginx服务器整体运行的配置指令。

          1worker_processes  1;

          登录后复制

          这个代表nginx处理并发的关键配置,值越大,处理并发能力越强。但是会受到硬件、软件等约束。

          2.events块

          events块涉及的指令主要影响nginx服务器与用户网络的连接。

          1worker_connections  1024;

          登录后复制

          这个代表nginx支持的最大连接数。

          3.http全局块

          nginx服务器配置最频繁的部分。http全局块包含http块server块

          三 Nginx配置反向代理

          3.1 ngix代理流程

          本地浏览器访问nginx服务器,nginx服务器反向代理tomcat服务器,当我们请求nginx的时候直接访问到tomcattomcat的安装这里就不在讲了,我将tomcatnginx安装在了同一台服务器上。

          3.2 配置ip和域名的绑定关系

          由于我们的nginx没有域名,为了演示,因此我们在本地host文件中配置nginx服务器ip和域名进行绑定。这个host文件的具体位置在C:\Windows\System32\drivers\etc。在host文件中增加一句配置:

          147.104.xxx.xxx www.javatrip.com

          登录后复制

          前面的ip是服务器的ip地址,后面的域名是我随便起的用于绑定这个ip的一个域名。配置好之后,我们使用域名访问一下tomcat,如果能请求到tomcat默认页面,则配置成功。

          3.3 在nginx配置请求转发

          1  server {
          2        listen       80;
          3        server_name  localhost;
          4
          5        location / {
          6            root   html;
          7            index  index.html index.htm;
          8        }
          9  }

          登录后复制

          我们将以上默认的配置文件做个修改:

           1server {
           2    listen       80;
           3    server_name  47.104.xxx.xxx;
           4
           5    location / {
           6        root   html;
           7        proxy_pass http://127.0.0.1:8080;
           8        index  index.html index.htm;
           9    }
          10}

          登录后复制

          以上这段配置的意思就是请求是47.104.xxx.xxx:80,都会转发至47.104.xxx.xxx:8080

          现在浏览器访问www.javatrip.com,发现直接转发到了tomcat上了,这样简单的反向代理就完成了。

          3.4 根据请求后缀分发

          我们再解压一个tomcat,端口号设置为8081,分别在两个tomcatwebapps目录下面新建devprod目录,然后在该目录下写一个文件。

          将请求www.javatrip.com:7001/dev转发到tomcat8080,将请求www.javatrip.com:7001/prod转发到tomcat8081。现在我们的nginx监听的端口号是7001。打开nginx的配置文件,新建一个server如下:

           1server {
           2    listen       7001;
           3    server_name  47.104.xxx.xxx;
           4
           5    location ~ /dev/ {
           6        proxy_pass http://127.0.0.1:8080;
           7    }
           8
           9    location ~ /prod/ {
          10        proxy_pass http://127.0.0.1:8081;
          11    }
          12}

          登录后复制

          然后试试效果,分别访问www.javatrip.com:7001/dev/a.html和www.javatrip.com:7001/prod/a.html,效果如下:

          其中,配置转发的时候用到了~,其含义内容如下:

          • = 严格匹配。如果这个查询匹配,那么将停止搜索并立即处理此请求。

          • ~ 为区分大小写匹配(可用正则表达式)

          • !~为区分大小写不匹配

          • ~* 为不区分大小写匹配(可用正则表达式)

          • !~*为不区分大小写不匹配

          • ^~ 如果把这个前缀用于一个常规字符串,那么告诉nginx如果路径匹配那么不测试正则表达式。

            四 Nginx配置负载均衡

            4.1 什么是负载均衡

            负载均衡(Load Balance),意思是将负载(工作任务,访问请求)进行平衡、分摊到多个操作单元(服务器,组件)上进行执行。是解决高性能,单点故障(高可用),扩展性(水平伸缩)的终极解决方案。

            现在我们想实现的效果是通过访问www.javatrip.com:7001/prod/a.html,将请求分别分发到两个tomcat上面去,首先我们在tomcat8080上新建一个prod的文件夹,里面放一个a.html的文件。这样tomcat8081tomcat8080两个上就都有了一个prod的文件加且里面有一个a.html的文件。

            4.2 配置nginx.conf

            首先,在http块中配置两个tomcat的服务列表

            1upstream myserver{
            2    server 127.0.0.1:8080;
            3    server 127.0.0.1:8081;
            4}

            登录后复制登录后复制

            其次,在server块中配置规则:

             1server {
             2    listen       80;
             3    server_name  47.104.xxx.xxx;
             4
             5    location / {
             6        root   html;
             7        proxy_pass http://myserver;
             8        index  index.html index.htm;
             9    }
            10}

            登录后复制

            4.3 测试效果

            访问地址:www.javatrip.com:7001/prod/a.html,多刷新几次。发现有的请求到tomcat8080上,有的请求到tomcat8081上。

            4.4 nginx支持的几种负载策略

            • 轮询(默认):每个请求按时间顺序逐一分配到不同的服务器,如果服务器down了,会自动剔除。

              1upstream myserver{
              2    server 127.0.0.1:8080;
              3    server 127.0.0.1:8081;
              4}

              登录后复制登录后复制

              • weight(权重):默认为1,权重越高,分配的请求越多。

                1upstream myserver{
                2    server 127.0.0.1:8080 weight=1;
                3    server 127.0.0.1:8081 weight=2;
                4}

                登录后复制

                • ip hash:每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后台服务器,可以解决session的问题。

                  1upstream myserver{
                  2    ip_hash;
                  3    server 127.0.0.1:8080;
                  4    server 127.0.0.1:8081;
                  5}

                  登录后复制

                  • fair(第三方):按后端响应时间进行分配,响应时间越短分配的请求越多。

                    1upstream myserver{
                    2    server 127.0.0.1:8080;
                    3    server 127.0.0.1:8081;
                    4    fair;
                    5}

                    登录后复制

                    由于动静分离在实际开发中也不常用,就不再写了。本篇文章做为一个nginx入门,到这里就基本完结了。最后留给大家一个问题思考一下:如何保证nginx的高可用?

以上就是Nginx超简单教程,入门看这篇就够了的详细内容,更多请关注www.92cms.cn其它相关文章!

分享到:
标签:入门 就够了 教程 简单 这篇
用户无头像

网友整理

注册时间:

网站:5 个   小程序:0 个  文章:12 篇

  • 51998

    网站

  • 12

    小程序

  • 1030137

    文章

  • 747

    会员

赶快注册账号,推广您的网站吧!
最新入驻小程序

数独大挑战2018-06-03

数独一种数学游戏,玩家需要根据9

答题星2018-06-03

您可以通过答题星轻松地创建试卷

全阶人生考试2018-06-03

各种考试题,题库,初中,高中,大学四六

运动步数有氧达人2018-06-03

记录运动步数,积累氧气值。还可偷

每日养生app2018-06-03

每日养生,天天健康

体育训练成绩评定2018-06-03

通用课目体育训练成绩评定