Linux安装Nginx

简介:是一个高性能的HTTP反向代理web服务器,道听途说可高达5W个并发连接数。主要有反向代理、负载均衡、动静分离。

系统平台:Centos 7

Nginx安装配置

下载地址:http://nginx.org/en/download.html

1、安装编译工具及库文件

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

2、安装 PCRE

>cd /usr/local/src/
>wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
>tar zxvf pcre-8.35.tar.gz
>cd pcre-8.35
>./configure
>make && make install
>pcre-config --version

3、安装Nginx(版本自选,有安装包直接xftp上传即可)

> cd /usr/local/src/
> wget http://nginx.org/download/nginx-1.6.2.tar.gz

4、解压后编译安装(路径按需修改)

> ./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.35
> make
> make install

Tips:

  报错1:编译安装报错解决:在nginx目录下的 /objs/Makefile 找到 -Werror 并去掉 在重新make即可

    ===》CFLAGS =  -pipe  -O -W -Wall -Wpointer-arith -Wno-unused -Werror -g

  报错2:make[1]: Leaving directory `/xx/nginx'

    没有新建文件夹,可继续执行下一步


5、常用命令(需在安装的sbin目录下,不是解压目录)

> nginx # 启动
> nginx -s reload # 重新载入配置文件
> nginx -s reopen # 重启 Nginx
> nginx -s stop # 停止 Nginx
> nginx -v # 查看版本
> nginx -V # 版本信息外还显示配置参数信息
> nginx -t # 查看配置信息是否正确 修改必执行

6、第4步可不要后缀直接 ./configure

  安装成功后,在usr多出一个文件夹local/nginx,nginx有sbin的启动脚本,配置文件路径:usr/local/nginx/conf/nginx.conf

> firewall-cmd --list-all  #查看开放的端口号
> /sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT;  #开放端口号
> firewall-cmd -reload  #重启防火墙

7、vi nginx.conf端口可自行修改,默认80,外部访问可关闭防火墙或者开端口  

 使用:proxy_pass  http://myserver; #请求转向mysvr 定义的服务器列表

  a、轮询(默认)/加权轮询:每个请求按时间顺序逐一分配到不同的后端服务器;

upstream myserver{
    server 127.0.0.1:8080 weight=1; #server1
    server 127.0.0.1:8081 weight=1; #server2
}

  b、热备:挂了一台热备才会使用

upstream myserver { 
    server 127.0.0.1:8080 ; 
    server 127.0.0.1:8081 backup; #热备 
}

  c、is_hash:会让相同的客户端ip请求相同的服务器。

upstream myserver { 
    server 127.0.0.1:8080; 
    server 127.0.0.1:8081;
    is_hash; 
}

  d、fair(第三方):安装服务器的响应时间来分配请求,响应时间短的优先分配

upstream myserver { 
    server 127.0.0.1:8080; 
    server 127.0.0.1:8081;
    fair;
}

 设置:worker数量和服务器的cpu数相等是最为适宜的
 连接数worker_connection发送一次请求占用了woker数量为2或者4个(静态、动态)

 ~:uri包含正则表达式:区分大小写
 ~*:不区分大小写

Tips:权威配置修改  https://www.runoob.com/w3cnote/nginx-setup-intro.html 

 

8、配置https访问https://www.cnblogs.com/crazymagic/p/11042333.html

9、动静分离(简例) 

  • 静态资源: 当用户多次访问这个资源,资源的源代码永远不会改变的资源。
  • 动态资源:当用户多次访问这个资源,资源的源代码可能会发送改变。

 a、准备工作,新建data文件夹,www下放html、image下放图片

 

   b、配置

 

   c、请求

  tomcat:http://127.0.0.1

  html:http://127.0.0.1/www/test.html

  image:http://127.0.0.1/image/

 

10、高可用集群

  a、准备两台服务器192.168.66.128、192.168.66.129;虚拟IP192.168.66.130

  b、都安装好nginx和安装keepalived

  c、keepalived安装 

> yum install keepalived -y    #安装后 /etc/keepalived 目录下有keepalived.conf
> rpm -q -a keepalived  #检查是否已经安装

  d、完成高可用配置(主从配置)

vrrp_instance VI_1 {
    state MASTER    #备份服务器将 MASTER 改为 BACKUP
    interface ens33  #网卡 ifconfig查看 
    virtual_router_id 51 #主 备值必须相同
    priority 100    #主备机取不同的优先级 主大备小
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.200.16
    }
}
# 下方新增配置 检查nginx
varr_script chk_http_port {
        script "/usr/local/src/nginx_check.sh"
        interval 2
        weight  2
}

  e、在 /usr/local/src 添加检测脚本 nginx_check.sh :此脚本检测nginx进程,不关注内容,若出现有进程但是页面加载不出来的情况,此脚本无用。 

#!/bin/bash
A=`ps -C nginx --no-header|wc -l`
if [ $A -eq 0 ];then
    /usr/local/nginx/sbin/nginx
    sleep 2
    if [ `ps -C nginx --no-header|wc -l` -eq 0 ];then
        killall keepalived
    fi
fi

  f、两台nginx、keepalived都启动  

  keepalived> systemctl start keepalived.service

  预想效果:访问虚拟IP,主要是访问主服务器,当主服务器宕机后会自动访问备份服务器

  实际效果:ip a 也查询到 keepalived 绑定的vip了,但虚拟IP访问不到,原因未明

 

posted on 2020-06-24 11:39  fuanfei  阅读(114)  评论(0)    收藏  举报