Linux nginx部署级常用配置

下载

  1. nginx

    下载地址:http://nginx.org/en/download.html
    稳定版本:1.12.2

  2. zlib

    下载地址:https://sourceforge.net/projects/libpng/files/zlib/
    gzip模块需zlib库

  3. pcre

    下载地址:https://sourceforge.net/projects/pcre/files/pcre/
    rewrite模块需pcre库

  4. openssl

    下载地址:https://www.openssl.org/source/openssl-1.0.2n.tar.gz
    ssl功能需openssl库
    指定这个版本1.0.2n,因为下载了最新版本安装时报错

预编译环境

  1. 安装make:
    yum -y install gcc automake autoconf libtool make
  2. 安装g++:
    yum install gcc gcc-c++

安装

  • 安装zlib
cd /usr/local/src
​tar -zxvf /usr/local/setup/nginx/zlib-1.2.11.tar.gz 
cd zlib-1.2.11./configure
make
make install​​​
  • 安装pcre
cd /usr/local/src
tar -zxvf /usr/local/setup/nginx/pcre-8.42.tar.gz
cd pcre-8.42./configure
make
make install​​​​
  • 安装openssl
cd /usr/local/src
tar -zxvf /usr/local/setup/nginx/openssl-1.0.2n.tar.gz​
cd ​openssl-1.0.2n
./config
make
make install​​​
  • 安装nginx
cd /usr/local/src
tar -zxvf /usr/local/setup/nginx/nginx-1.12.2.tar.gz
cd ​​​nginx-1.12.2======./configure时注意修改zlib、pcre、openssl版本号:​
./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.42 --with-zlib=/usr/local/src/zlib-1.2.11 --with-openssl=/usr/local/src/openssl-1.0.2n
​
make
make install​​

操作命令

启动
/usr/local/nginx/nginx

检查配置
/usr/local/nginx/nginx -t

平滑重启(修改配置文件后,可使用此命令重启,不影响运行) /usr/local/nginx/nginx -s reload

结束nginx(待nginx进程执行任务完毕后退出)
/usr/local/nginx/nginx -s quit

直接退出nignx
/usr/local/nginx/nginx -s stop

nginx配置详解

参考:
https://blog.csdn.net/denghonghao/article/details/79620454
https://blog.csdn.net/yougoule/article/details/78186138​
http://www.runoob.com/linux/nginx-install-setup.html​


多tomcat 80端口共享配置

nginx.conf配置信息如下:

    ​server {
        listen  80;
        server_name     a1.xxx.com;
        location / {
            proxy_pass http://a1.host:8080/;
        }
    }
    server {
        listen 80;
        server_name     a2.xxx.com;
        location / {
            proxy_pass http://a2.host:8080/;
        }
    }
    server {
        listen 80;
        server_name     b1.xxx.com;
        location / {
            proxy_pass http://b1.host:8081/;
        }
    }

注解:
a、b两个tomcat分别使用端口8080和8081。​a tomcat发布2个应用分别使用host:name为a1.host和a2.host; ​ b tomcat发布1个应用 host:name 为b1.host​。
3个server分别监听 ​a1.xxx.com、a2.xxx.com、b1.xxx.com ​的80端口,反向代理
a1.host:8080、 a2.host:8081、b1.host:8080​。其中相应的a1.xxx.com与a1.host可以一样,总之目的是客户端使用80端口访问服务器上的8080和8081端口。

nginx实现负载均衡

nginx.conf配置如下:

    server {
        listen 80;
        server_name www.xxx.com;
        location / {
            proxy_pass http://balance_serveralias;
        }
    }
    upstream balance_serveralias {
        #ip_hash;
        server  192.168.10.129:8080 weight=1;
        server  192.168.10.130:8080 weight=2;
    }

注解:
server_name指定了客户端访问地址,balance_serveralias 只是别名,没有实际意义​

    -

常见模式

  • 轮询(默认),每个请求按时间顺序逐一分配到不同的负载服务器,如果负载服务器down掉,能自动剔除。
upstream serveralias {
    server 192.168.10.129:8080;
    server 192.168.10.130:8080;
}
  • 权重,指定轮询几率,weight比例决定访问几率,将配置较好的机器配更高的权重,默认权重为1。
upstream serveralias {
    server 192.168.10.129:8080 weight=1;
    server 192.168.10.130:8081 weight=2;
}
  • ip_hash,将客户端ip通过hash算法匹配固定的一台服务器,这是唯一一种能保证session同步的模式;其他模式下只有第一次访问的机器保存有用户的session信息,需要添加session共享组件。
upstream serveralias {
    ip_hash;
    server 192.168.10.129:8080;
    server 192.168.10.130:8081;
}
  • fair,需要添加第三方插件,按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream serveralias {
    server 192.168.10.129:8080;
    server 192.168.10.130:8081;
    fair;
}
  • url_hash,需要添加第三方插件,按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
upstream serveralias {
    server 192.168.10.129:8080;
    server 192.168.10.130:8081;
    hash $request_uri;
    hash_method crc32;
}

设备状态参数设置
- weight 权重
- down 表示这台机器暂时不参与负载
- backup 灾备,在其他机器忙或者down的情况下使用

注意事项
参与负载的服务器名使用ip加端口的形式指定,域名也可以,但会被先解析成ip地址再参与负载。如tomcat指定localhost:8080访问a目录,hostalias:8080访问目录b,参与负载的机器即使配置为hostalias:8080,最终访问的还是目录a(即localhost:8080)

常见问题
出现nginx.pid找不到的情况时,重新指定nginx.conf位置 /usr/local/nginx/nginx -c /usr/local/nginx/nginx.conf

你可能感兴趣的:(nginx)