您的位置:68399皇家赌场 > 集群主机 > Nginx 的设置与配置.

Nginx 的设置与配置.

发布时间:2019-05-23 05:54编辑:集群主机浏览(61)

    一、下载

    Linux:CentOS 7.3 64位

    Nginx:nginx-1.13.1

    设置目录:/usr/local/

    wget http://nginx.org/download/nginx-1.13.1.tar.gz
    

    兑现网址负载有三种艺术,壹种是采购硬件来落到实处,比方是硬件F伍再到Citrix Netscalar,那么些器械都几玖仟0,不是形似人玩的,另1种是选取软件来贯彻,举例nginx,squid那类有反向代理成效的软件,本文就nginx安装完毕负载。

    因近期在切磋dotcore,涉及nginx使用,中间出了有的标题,故再度研讨并计算了一晃nginx。

    Nginx简介

    • Nginx是一款轻量级的Web服务器、也是一款反向代理服务器。

    二、安装

    首先是windows系统,这里提出利用window 200三厂商版,而毫无功用win7(太新了,作者超过无法运转nginx的难题)。要说的是,在windows下安顿安装nginx照旧很轻巧的,少了 linux下下载tar再安顿编写翻译参数等等步骤,大家借使从底下的地点下载相应的zip包(大致750kb)就可以,地址如下:

    一.安装

    Nginx功能

    • 一:能够直接援救Rails和PHP的顺序。
    • 2:可看成HTTP反向代理服务器。
    • 叁:作为负载均衡的服务器。
    • 四:作为邮件代理服务器。
    • 7:扶助完成前端静动分离。

    1、安装Nginx依赖

    (1)  gcc、gcc-c

    yum install gcc      
    yum install gcc-c  
    

    (2) pcre 、zilb

    yum -y install pcre*
    yum -y install zlib*
    

    (三) openssl (若要求扶助 https 协议)

    yum -y install openssl 
    yum -y install openssl-devel
    

         

    yum install -y pcre pcre-devel

    Nginx特点

    • 高稳定,高品质, 财富占用少,效率丰富, 模块化结构,帮忙热计划。

    2、安装Nginx

    (1) 解压安装包

    tar -z -xv -f nginx-1.13.1.tar.gz
    

    (2) 编译

    cd nginx-1.13.1
    ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-pcre
    

    tips:

    --prefix:设置安装路线
    --with-http_stub_status_module:援助nginx状态查询
    --with-http_ssl_module:支持https
    --with-pcre:为了帮衬rewrite重写作用,必须制定pcre

    (3) 安装

    make 
    make install
    

    (4) 启动

    /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
    

    (5) 效果

        访问

    图片 1

          须要验证的是以此下载包是nginx 0.捌.二一开采版,换句话说其只得用于搭建测试蒙受等用途的,不可能用于实际的生育碰着(受限于windows文件句柄数限制)。

    yum install -y zlib zlib-devel

    Nginx项目安顿及表达

    • Linux系统下的陈设
    • Windows 系统下的配备

    三、配置

        Nginx 的安顿内容都写在 /usr/local/nginx/conf/nginx.conf 中,先来探视这些文件一些布置项的含义:

    #user  nobody;
    #开启的线程数,一般跟逻辑CPU核数一致
    worker_processes  1;
    
    #定位全局错误日志文件,级别以notice显示,还有debug,info,warn,error,crit模式,debug输出最多,crir输出最少,根据实际环境而定
    #error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;
    
    #指定进程id的存储文件位置
    #pid        logs/nginx.pid;
    
    
    events {
        #定义每个进程的最大连接数,受系统进程的最大打开文件数量限制。
        worker_connections  1024;
    }
    
    
    http {
        include       mime.types;
        #核心模块指令,默认设置为二进制流,也就是当文件类型未定义时使用这种方式
        default_type  application/octet-stream;
    
        #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
        #                  '$status $body_bytes_sent "$http_referer" '
        #                  '"$http_user_agent" "$http_x_forwarded_for"';
    
        #access_log  logs/access.log  main;
    
        sendfile        on;
        #开启防止网络阻塞
        #tcp_nopush     on;
    
        #开启防止网络阻塞
        #tcp_nodelay    on;
    
        #keepalive_timeout  0;
        #设置客户端连接保存活动的超时时间
        keepalive_timeout  65;
    
        #设置允许客户端请求的最大的单个文件字节数
        client_max_body_size    200m;
    
        #指定来自客户端请求头的headebuffer大小
        #client_header_buffer_size  32k;
    
        #指定连接请求试图写入缓存文件的目录路径
        #client_body_temp_path /dev/shm/client_body_temp;
    
        #指定客户端请求中较大的消息头的缓存最大数量和大小,目前设置为4个32KB
        #large client_header_buffers 4 32k;
    
    
        #gzip  on;
    
        #配置负载均衡
        upstream tomcatServer {
            server 192.168.0.1:8680  weight=10;
            server 192.168.0.2:8680  weight=10;
        }
    
        server {
            #监听端口,其中 http 是80,https 是 443 
            listen       80;
            #主机域名
            server_name  localhost;
            #设置访问的语言编码
            #charset koi8-r;
            #设置虚拟主机访问日志的存放路径及日志的格式为main
            #access_log  logs/host.access.log  main;
    
            #监听所有的 / 访问路径,并将它转化相应服务器
            location / {
                 proxy_pass http://tomcatServer/;
            }
    
    
            #error_page  404              /404.html;
    
            # redirect server error pages to the static page /50x.html
            #
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
    
            # proxy the PHP scripts to Apache listening on 127.0.0.1:80
            #
            #location ~ .php$ {
            #    proxy_pass   http://127.0.0.1;
            #}
    
            # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
            #
            #location ~ .php$ {
            #    root           html;
            #    fastcgi_pass   127.0.0.1:9000;
            #    fastcgi_index  index.php;
            #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            #    include        fastcgi_params;
            #}
    
            # deny access to .htaccess files, if Apache's document root
            # concurs with nginx's one
            #
            #location ~ /.ht {
            #    deny  all;
            #}
        }
    
    
        # another virtual host using mix of IP-, name-, and port-based configuration
        #
        #server {
        #    listen       8000;
        #    listen       somename:8080;
        #    server_name  somename  alias  another.alias;
    
        #    location / {
        #        root   html;
        #        index  index.html index.htm;
        #    }
        #}
    
    
        # HTTPS server
        #
        server {
            #监听https请求
            listen       443 ssl;
            #主机域名
            server_name  api.gogo.cn;
            #公钥,他会被发送到连接服务器的每个客户端
            ssl_certificate      /usr/local/cert/lxcx.pem;
            #私钥,是用来解密的
            ssl_certificate_key  /usr/local/cert/lxcx.key;
    
            #缓存在所有工作进程之间共享,1MB可以存储4000个会话
            ssl_session_cache    shared:SSL:1m;
            #会话超时时间
            ssl_session_timeout  30m;
    
            #Nginx 只允许使用 TLS 协议
            #指令用于启动特定的加密协议    
            ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
            #选择加密套件
            ssl_ciphers HIGH:!aNULL:!MD5:!EXPORT56:!EXP;
            #设置协商加密算法时,优先使用我们服务端的加密套件,而不是客户端浏览器的加密套件
            ssl_prefer_server_ciphers  on;
    
            proxy_connect_timeout 500;
            proxy_send_timeout 500;
            proxy_read_timeout 500;
            client_max_body_size 200m;  
            location / {
               # root   html;
               # index  index.html index.htm;
               proxy_pass http://172.27.0.11:8680/;
            }
        }
    
        server {
            listen       443 ssl;
            server_name  admin.gogo.cn;
    
            ssl_certificate      /usr/local/cert/lxcx.pem;
            ssl_certificate_key  /usr/local/cert/lxcx.key;
    
            ssl_session_cache    shared:SSL:1m;
            ssl_session_timeout  5m;
    
            ssl_ciphers  HIGH:!aNULL:!MD5;
            ssl_prefer_server_ciphers  on;
    
            location / {
                #root   html;
               # index  index.html index.htm;
            proxy_pass http://172.27.0.11:8380/;
            proxy_connect_timeout 500;
            proxy_send_timeout 500;
            proxy_read_timeout 500;
            client_max_body_size 200m;
    
            }
        }
    
    }
    

     

    1、配置负载均衡

        如上,在文件中安插以下内容,这里用的是 内定轮询可能率的权重分配情势,内定 两台服务器的拜会概率。这里配置的 一:1的走访可能率,能够依附服务器的硬件条件配置相应的百分比。这种安插有个毛病就是访问请求 随机的在两台服务器间跳转,还亟需消除差异服务器间session共享难题。

    upstream tomcatServer {
            server 192.168.0.1:8680  weight=10;
            server 192.168.0.2:8680  weight=10;
       }
    

               除了这种艺术外,还应该有 ip_hash 情势。每一种请求按访问 ip 的 hash 结果分配,那样各种访客固定访问一个后端服务器,可一蹴即至session的难题:      

    upstream tomcatServer {
            ip_hash;
            server 192.168.0.1:8680;
            server 192.168.0.2:8680;
      }
    

               还也有1种,按后端服务器的响应时间来分配请求,响应时间短的开始时期分配:

    upstream tomcatServer {
           server 192.168.0.1:8680;
           server 192.168.0.2:8680;
           fair;
    }
    

     

               接下来,大家就要把走访请求 映射到负载均衡上:

    location /{
              proxy_pass http://tomcatServer/;
            }
    

     

           贰、重启服务

    (一)  验证配置文件是不是科学

       进入nginx安装目录sbin下,输入指令./nginx -t

         图片 2

    (贰) 重启服务

        进入nginx可实施目录sbin下,输入指令./nginx -s reload 即可

          下载并将该包中的文件解压到c盘上,为了安排使用方便,小编将其解压后的文件夹名称从“nginx-0.八.1九”改为"nginx”,那样我们只要将在负载均衡的站点在iis中安装好未来,将相应的链接地址放到nginx的相应布置文件中就可以,这里大家展开C:nginxconf nginx.conf文件,将上面包车型大巴内容放到该文件的“server { ”上方行处:

    yum install -y openssl openssl--devel

    Linux系统下的配置

    • 设置的连串蒙受: CentOS 6.八 60个人
    • 版本1.10.2
    • 安装gcc(命令:yum install gcc-c ) 备注:能够输入gcc -v 查询版本音讯,看系统是还是不是自带安装。
    • 安装pcre(命令:yum install pure-devel)。
    • 安装zlib(命令:yum install lib lib-devel) 。
    • 安装openssl(命令:yum install openssl openssl-devel)。
      • 综合命令:yum -y install gcc lib zlib-devel pure-devel openssl openssl-devel
    • 下载源码包,牢固版本。(http://www.nginx.org/)
      • wget http://nginx.org/download/nginx-1.10.2.tar.gz。
    • 解压文件:
      • $ tar -zxvf nginx-1.10.2.tar.gz
    • Nginx安装
      • 一:进入nginx目录之后实行 ./configure
        • 也能够指定安装路线,扩大参数--prefix=/usr/nginx
        • 假定不点名路径,能够经过 whereis nginx开始展览询问。
        • 私下认可安装在/usr/local/nginx。
      • 继续实施 make 命令。
      • 继续实行 make install

    图片 3

    图片 4

    upstream  mylocalsite {  
         server   10.0.2.137:8088;
         server   10.0.2.137:8089; 

    yum -y install pcre-devel openssl openssl-devel

    Windows 系统下的布署

    • 设置的体系情形: Windows7 6拾伍人。
    • 本子1.十.二 : 下载地址: http://nginx.org/download/nginx-1.10.2.zip 。
    • 解压缩。
    • 运作nginx.exe,通过双击Logo恐怕cmd命令行运转。

     

    yum -y install gcc gcc-c  autoconf automake make  -- c编写翻译器没装也须求装

    Nginx常用命令

    • 测试配置文件
      • 设置路线下的 /nginx/sbin/nginx -t
    • 开发银行命令
      • 安装路线下的 /nginx/sbin/nginx
    • 甘休命令
      • 安装路线下的 /nginx/sbin/nginx -s stop
    • 重启命令
      • 设置路线下的 /nginx/sbin/nginx -s reload
    • 翻看进程命令
      • 安装路线下的 ps -ef | grep nginx
    • 平整重启命令
      • 安装路线下的 kill -HUP。[Nginx主进度号]。

          因为nginx不能运营动态脚本,所以这里要动用proxy_pass属性举行代理,所以找到该配置文件的如下内容:

    ------------------以上是安装编写翻译景况---------------------

    扩充防火墙访问权限

    • 1:sudo vim /etc/sysconfig/iptables
    • 2:
      -A INPUT -p tcp -m state --state NEW -m tcp -- dport 80 -j ACCEPT 
    
    • 三:保存退出
    • 四: 重启防火墙 sudo service iptables restart

    location / {
               root   html;
               index  index.html index.htm;
    }

    wget ##没取到,浏览器下载后rz到linux

    Nginx虚拟域名配置及测试表明

    • 配置步骤:
      • 1、nginx.conf
        • 1: 编辑: sudo vim /usr/local/nginx/conf/nginx.conf
        • 2:增加: include vhost/*.conf
        • 三:保存退出。
      • 2、在 /usr/local/nginx/conf/ 目录新建vhost 文件夹。
      • 3、创制域名转载配置文件。
      • 4、 启动(重启)验证
        • 启动: ${nginx}/sbin/nginx
        • 重启: ${nginx}/sbin/nginx -s reload。 ${nginx}代表安装在系统中的路线。
      • 伍: 访问验证:
        • 利用暗许80端口访问验证:http://localhost:80 或者
        • : 指向端口
            ![](https://upload-images.jianshu.io/upload_images/325120-b9be2f28dba8c510.png)
    

     

    tar -zxvf nginx-1.7.4.tar.gz

    Nginx本地搭建注意事项

    • 能够计划域名转载,但请一定要配置host,并且使host生效之后才足以,设置完结之后要重启浏览器。
    • 1: Linux:
      • 1: sudo vim /etc/hosts
      • 贰: 增添好对应的域名及ip。

    图片 5

    • 2:Windows:
      • 1: 进入 C: WindowsSystem32driversetc
      • 2:用记事本展开 hosts文件。
      • 3:增加好对应的 域名及ip。

          修改其内容如下:

    cd nginx-1.7.4

    Nginx conf文件配置

    图片 6

    • 修改本地的host

    图片 7

    • 将里面的参数拷贝到新成立的conf中去。
    ![](https://upload-images.jianshu.io/upload_images/325120-f248b8a8a4a8c1d3.png)
    

    location / {
                proxy_pass ;

    ./configure

    nginx支持的负载均衡调治算法格局如下:

    • weight轮询(暗中认可):接收到的呼吁依照顺序依次分配到差别的后端服务器,纵然在行使进程中,某一台后端服务器宕机,nginx会自动将该服务器剔除骑行列,请求受理情况不会遭到其余影响。 这种措施下,可以给差异的后端服务器设置1个权重值(weight),用于调治不一样的服务器上呼吁的分配率;权重数据越大,被分配到请求的可能率越大;该权重值,重即使针对实际专门的职业条件中分歧的后端服务器硬件配备举办调治的。

    • ip_hash:种种请求遵照发起客户端的ip的hash结果举办相配,那样的算法下叁个牢固ip地址的客户端总会访问到同一个后端服务器,那也在断定程度上消除了集群安插情形下session共享的主题材料。

    • fair:智能调治调解算法,动态的依附后端服务器的伸手管理到响应的小时展开平衡分配,响应时间短管理功能高的服务器分配到请求的可能率高,响应时间长管理功效低的服务器分配到的呼吁少;结合了前双方的亮点的壹种调解算法。可是急需专注的是nginx暗许不协助fair算法,借使要动用这种调治算法,请安装upstream_fair模块

    • url_hash:依照访问的url的hash结果分配请求,各个请求的url会指向后端固定的某部服务器,能够在nginx作为静态服务器的景况下加强缓存效用。一样要专注nginx暗中认可不接济这种调治算法,要采取的话须要设置nginx的hash软件包

     

    make
    make install

           修改完现在,还要修改一下server的侦听端口,原内容如下:

    认同安装准确?

    server {
          listen       80;
          server_name  localhost; 
          …… 

    一.由此走访暗中认可网址出现接待页。

     

    二.ps -aux|grep nginx 确认线程运营

          修改完后的情节如下:    

     

     server {
            listen       8086;
            server_name  10.0.2.136; 
            …… 

    二、nginx指令

       

    透过扶助能够常看到,指令,如:sbin/nginx -h

          那样,nginx就能够在起步以往开端侦听本地IP(十.0.二.13陆)的80八六端口请求,然后将其请求转向到mylocalsite 中所内定的八个iis站点,并将奉行的结果转载给客户端。假诺整个安顿不错,那时能够运作 c:/nginx/nginx.exe (或在cmd下运作“start nginx”),就能够在职分管理器中来看叁个nginx进度运营了。(注:假使安插文件有不当,能够到C:nginxlogserror.log 查看错误日志,进一步排错)。

    -?,-h           : 展开支持音讯
    -v              : 突显版本音信并脱离
    -V              : 突显版本和配置选项音讯,然后退出
    -t              : 检查测试配置文件是还是不是有语法错误,然后退出
    -q              : 在检查评定配置文件时期屏蔽非错误消息
    -s signal       : 给1个 nginx 主进度发送频限信号:stop(结束), quit(退出), reopen(重启), reload(重新加载配置文件)
    -p prefix       : 设置前缀路线(暗许是:/usr/local/Cellar/nginx/一.2.6/)
    -c filename     : 设置配置文件(私下认可是:/usr/local/etc/nginx/nginx.conf)
    -g directives   : 设置配置文件外的全局指令

          注: 关闭ngnix的命令: nginx -s stop

     

                 配置文件ngnix.conf精确性判别的一声令下: nginx -t 

    启航方式建议用

     

    /usr/local/nginx/sbin/nginx  -c /usr/local/nginx/conf/nginx.conf #经过展现加载配置文件,幸免 nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed错误

           当然Nginx 负载均衡的功用也是很强的,并且其貌似作为七层负载均衡(应用协议层)。下边就其upstream所援救的五个常用设置开展表达: 

     

    本文由68399皇家赌场发布于集群主机,转载请注明出处:Nginx 的设置与配置.

    关键词: N Linux nginx netcore .netcore

上一篇:皇家赌场:数据结构-学习笔记01

下一篇:没有了