Nginx实用详解

Posted by Blog of JackerWang on June 14, 2018

Nginx服务搭建

一: yum安装

centos7系统库中默认是没有nginx的rpm包的,所以我们自己需要先更新下rpm依赖库

(1) 使用yum安装nginx需要包括Nginx的库,安装Nginx的库

#rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

或者直接配置repo:

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

(2) 使用下面命令安装nginx

#yum install nginx

(3) 启动Nginx

#service nginx start

#systemctl start nginx.service

二: 源码安装

一般如果需要用到Nginx的stream模块需要进行源码安装,添加stream模块。

(1) 官网下载1.14version

(2)解压,进入目录之后进行编译,安装。

需要先安装依赖

yum install openssl
./configure --prefix=/usr/local/nginx --with-http_stub_status_module  --without-http_rewrite_module --with-http_ssl_module --with-http_realip_module --with-http_flv_module --with-http_mp4_module --with-stream --with-stream_ssl_module

make

make install

#启动(利用指定的配置文件进行启动)
nginx -c nginx.configure

#进行配置文件语法检查
nginx -t -c nginx.configure

#关闭
nginx -s stop

#重新加载配置文件
ngnx -s reload

(3)建立软连接

ln -s /usr/local/nginx/bin/nginx /usr/bin/nginx

利用Nginx的stream模块进行TCP,SSH端口映射

一:Nginx模块介绍

Nginx一般常用的模块有http(针对http协议通讯),stream(针对TCP,SSH协议通讯),http是Nginx自带的模块,stream需要源码安装的时候另外指定进行安装,此过程上述源码安装一章有仔细的讲述。

二:利用Nginx进行FTP端口映射

此时应利用stram模块进行配置,环境中FTP服务的端口是9019,此时需要将外部访问的21端口映射到9019,配置文件如下:

stream{

    upstream ftp {
      hash $remote_addr consistent;
      server 127.0.0.1:9019 max_fails=10000 fail_timeout=30s;
    }
    #proxy_read_timeout 300s;
    #proxy_send_timeout 300s;
    #keepalive_requests 1000;
    #keepalive_timeout 300s;
    server{
        listen  21;
        proxy_pass ftp;
    }
}

#最大工作进程(必须配置)
worker_processes  10;

#最大连接数量(必须配置)
events{
    worker_connections  1024;
}

三:利用Nginx进行服务器的负载均衡

http{
    upstream opentsdb{
              server   10.142.232.113:4242 weight=1;
              server   10.142.232.114:4242 weight=1;
              server   10.142.232.115:4242 weight=1;

     }
     server{
               listen 8383;
               location /{
                   proxy_pass http://opentsdb;
               }

      }
}

#最大工作进程(必须配置)
worker_processes  10;

#最大连接数量(必须配置)
events{
    worker_connections  1024;
}


以上配置将监听8383端口,然后将请求按照一定规则(这里是按照权重分配)分发给 113,114,115三台机器的服务