• CentOS 7.6环境下Nginx1.23.3下载安装配置使用教程


    一、前言

    这篇文章主要介绍了CentOS 7.6环境下Nginx下载安装配置使用教程,学习nginx的朋友可以参考一下

    二、下载

    使用如下命令进行下载

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

    三、安装nginx需要的环境库

    项目首先我们需要安装gcc、gcc-c++、zlib、pcre 和openssl。

    判断?包名是否安装

    rpm -q ?包名

    3.1 安装gcc gcc-c++

    yum install -y gcc gcc-c++

    3.2 下载安装pcre

     cd /usr/local/
     wget http://downloads.sourceforge.net/project/pcre/pcre/8.45/pcre-8.45.tar.gz
     tar -zxvf pcre-8.45.tar.gz
     cd pcre-8.45
     ./configure
     make && make install
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    3.3 下载安装openssl

     cd /usr/local/
     wget https://www.openssl.org/source/openssl-1.1.1t.tar.gz --no-check-certificate
     tar -zxvf openssl-1.1.1t.tar.gz
     cd openssl-1.1.1t
     ./config
     make && make install
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    注:wget https://www.openssl.org/source/openssl-1.1.1t.tar.gz 后面记得一定加上–no-check-certificate,不然要报错。显示www.openssl.org上颁发的证书已经过期无法验证

    3.4 下载安装zlib

     cd /usr/local/
     wget http://zlib.net/zlib-1.2.13.tar.gz
     tar -zxvf zlib-1.2.13.tar.gz
     cd zlib-1.2.13
     ./configure
     make && make install
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    四、安装nginx

    4.1安装配置

     cd /usr/local/
    wget http://nginx.org/download/nginx-1.23.3.tar.gz
     tar -zxvf nginx-1.23.3.tar.gz -C /usr/local/
     cd nginx-1.25.2
     ./configure  --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/pcre-8.45  --with-openssl=/usr/local/openssh
     make && make install
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    4.2创建ssl的软链接,不然启动nginx会报错

    ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1
    ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
    
    • 1
    • 2

    五、启动Nginx

    5.1 启动Nginx

    /usr/local/nginx/sbin/nginx
    
    • 1

    测试一下nginx,从别台机器访问一下服务器的IP,出现“Welcome to nginx!”页面就说明成功了;如果访问不到页面但是可以ping通服务器的话可能是开启了防火墙,关闭就行。

    5.2 关闭防火墙

    systemctl stop firewalld.service
    
    • 1

    5.3 关闭防火墙开机自启

    systemctl disable firewalld.service
    
    • 1

    5.4 停止nginx服务

    /usr/local/nginx/sbin/nginx –s stop
    
    • 1

    5.5 强制关闭nginx服务

    pkill nginx
    
    • 1

    5.6 配置nginx开机自启动

    在/usr/lib/systemd/system路径下创建一个nginx的服务名称,这边设置为nginx.service

    cd /usr/lib/systemd/system
    vim nginx.service
    
    • 1
    • 2

    配置以下内容

    [Unit]
    Description=The NGINX HTTP and reverse proxy server
    After=network.target remote-fs.target nss-lookup.target
    
    [Service]
    Type=forking
    PIDFile=/usr/local/nginx/logs/nginx.pid  #更换成自己安装nginx的路径
    ExecStartPre=/usr/local/nginx/sbin/nginx -t #更换成自己安装nginx的路径
    ExecStart=/usr/local/nginx/sbin/nginx #更换成自己安装nginx的路径
    ExecReload=/usr/local/nginx/sbin/nginx -s reload #更换成自己安装nginx的路径
    ExecStop=/bin/kill -s QUIT $MAINPID
    PrivateTmp=true
    
    [Install]
    WantedBy=multi-user.target
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    配置完保存即可。

    配置开机自启动

    systemctl enable nginx.service
    
    • 1

    查看是否设置成功

    systemctl list-unit-files | grep nginx
    
    • 1
    启动:systemctl start nginx.service
    关闭:systemctl stop nginx.service
    
    • 1
    • 2

    六、介绍一下Nginx的配置

    6.1 nginx.conf配置文件介绍

    #nginx配置
    #user  nobody;
    worker_processes  1;    #服务器并发处理服务关键配置
    
    #error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;
    
    #pid        logs/nginx.pid;
    
    
    events {
        worker_connections  1024;   #最大连接数为 1024.
    }
    
    http {
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
    
        include       mime.types;
        default_type  application/octet-stream;
        sendfile        on;
        tcp_nopush     on;
        keepalive_timeout  65;
    
        #gzip  on;  #http头压缩
        
        #正向代理配置
        server {    
            listen       8080;  # 代理监听端口
            resolver 114.114.114.114; #代理DNS配置
            
            #charset koi8-r;
    
            access_log  /home/lich/logs/fproxy.access.log;  #accesslog输出路径
            error_log /home/lich/logs/fproxy.error.log;     #errorlog输出路径
            
            location / {
               
                proxy_pass $scheme://$host$request_uri;     # 配置正向代理参数
                proxy_set_header Host $http_host;           # 解决如果URL中带"."后Nginx 503错误
    
                proxy_buffers 256 4k;   # 配置缓存大小
                proxy_max_temp_file_size 0;     # 关闭磁盘缓存读写减少I/O
                proxy_connect_timeout 30;       # 代理连接超时时间
    
                # 配置代理服务器HTTP状态缓存时间
                proxy_cache_valid 200 302 10m;
                proxy_cache_valid 301 1h;
                proxy_cache_valid any 1m;
            }
        }
    
        
        #反向代理配置
        server {
            listen       80;
            server_name  test.test.com;   #代理转发域名配置
    
            access_log  /home/lich/logs/rproxy.access.log;
            error_log /home/lich/logs/rproxy.error.log;
    
            location / {
                proxy_pass http://172.16.113.1:8001;    #代理到后段实际应用服务器地址
                index  index.html index.htm index.jsp;
            }
    
            #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;
            }
        }
    }
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79

    6.2 监听配置用法

    listen *:80 | *:8080        #监听所有80端口和8080端口
    listen IP_address:port     #监听指定的地址和端口号
    listen IP_address          #监听指定ip地址所有端口
    listen port                 #监听该端口的所有IP连接
    
    • 1
    • 2
    • 3
    • 4

    6.3 server_name:基于名称的虚拟主机配置

    语法格式如下:

     server_name   name ...;
    
    • 1

    对于name 来说,可以只有一个名称,也可以有多个名称,中间用空格隔开。而每个名字由两段或者三段组成,每段之间用“.”隔开。

    server_name test.com www.test.com
    
    • 1

    可以使用通配符“*”,但通配符只能用在由三段字符组成的首段或者尾端,或者由两端字符组成的尾端。

    server_name *.test.com www.test.*
    
    • 1

    还可以使用正则表达式,用“~”作为正则表达式字符串的开始标记。

    server_name ~^www\d+\.test\.com$;
    
    • 1

    6.4 server_name:基于IP地址的虚拟主机配置

    #语法结构和基于域名匹配一样,而且不需要考虑通配符和正则表达式的问题。

    server_name 192.168.1.1
    
    • 1

    6.5 proxy_pass

    该指令用于设置被代理服务器的地址。可以是主机名称、IP地址加端口号的形式

    # proxy_pass URL;
    
    # URL 为被代理服务器的地址,可以包含传输协议、主机名称或IP地址加端口号,URI等。
    proxy_pass  http://www.test.com/uri;
    
    • 1
    • 2
    • 3
    • 4

    6.6 index

    该指令用于设置网站的默认首页。

    #index  filename ...;
    #后面的文件名称可以有多个,中间用空格隔开。
    index  index.html index.jsp;
    
    • 1
    • 2
    • 3

    七、 ngxin负载均衡

    7.1 轮询算法负载均衡

    upstream OrdinaryPolling {
        server 172.16.113.1:8081;
        server 172.16.113.1:8082;
    }
    server {
    listen       80; 
    server_name  test.test.com;
    
    access_log  /home/lich/logs/rproxy_slb.access.log;
    error_log /home/lich/logs/rproxy_slb.error.log;
    
    location / {
                 proxy_pass http://OrdinaryPolling;
                 index  index.html index.htm index.jsp;
                 # deny ip
                 # allow ip
             
            }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    7.2 基于比例加权轮询负载均衡

    
    upstream OrdinaryPolling {
        server 172.16.113.1:8081 weight=2;
        server 172.16.113.1:8082 weight=5;
    }
    server {
    listen       80; 
    server_name  test.test.com;
    
    access_log  /home/lich/logs/rproxy_slb.access.log;
    error_log /home/lich/logs/rproxy_slb.error.log;
    
    
    location / {
                 proxy_pass http://OrdinaryPolling;
                 # index  index.html index.htm index.jsp;
                 # deny ip
                 # allow ip
             
            }
    }
    
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    7.3 基于IP路由负载均衡

    在 upstream 指令块中增加了ip_hash 指令。该指令就是告诉 nginx 服务器,同一个 IP 地址客户端发送的请求都将分发到同一个 Tomcat 服务器进行处理。

    upstream OrdinaryPolling {
        server 172.16.113.1:8081 weight=2;
        server 172.16.113.1:8082 weight=5;
        ip_hash;
    }
    server {
    listen       80; 
    server_name  test.test.com;
    access_log  /home/lich/logs/rproxy_slb.access.log;
    error_log /home/lich/logs/rproxy_slb.error.log;
    location / {
                 proxy_pass http://OrdinaryPolling;
                 # index  index.html index.htm index.jsp;
                 # deny ip
                 # allow ip
            }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    7.4 基于服务器响应时间负载均衡

    根据服务器处理请求的时间来进行负载,处理请求越快,也就是响应时间越短的优先分配。

    upstream OrdinaryPolling {
        server 172.16.113.1:8081 weight=2;
        server 172.16.113.1:8082 weight=5;
        fair;
    }
    server {
    listen       80; 
    server_name  test.test.com;
    
    access_log  /home/lich/logs/rproxy_slb.access.log;
    error_log /home/lich/logs/rproxy_slb.error.log;
    
    
    location / {
                 proxy_pass http://OrdinaryPolling;
                 # index  index.html index.htm index.jsp;
                 # deny ip
                 # allow ip
             
            }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
  • 相关阅读:
    2022美亚杯电子数据取证大赛-个人赛
    lNmp安装:
    网络面试-ox07http中的keep-alive以及长/短连接
    websocket简介及上手,node + vue实现websocket服务
    使用Github Copilot生成单元测试并执行
    flutter 手写 TabBar
    HCIE学习笔记:IPV6 地址、ICMP V6、NDP 、DAD (更新补充中)
    腾讯春招后端一面(算法篇)
    计算机毕业设计选题推荐-船运物流管理系统-Java项目实战
    稚晖pcb总结
  • 原文地址:https://blog.csdn.net/lcy1619260/article/details/132619641