• nginx


    系统:CentOS Linux release 7.9.2009 (Core)
    一、安装nginx
    1、yum安装:
    添加yum源

    [nginx-stable]
    name=nginx stable repo
    baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
    gpgcheck=1
    enabled=1
    gpgkey=https://nginx.org/keys/nginx_signing.key
    module_hotfixes=true
    
    [nginx-mainline]
    name=nginx mainline repo
    baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
    gpgcheck=1
    enabled=0
    gpgkey=https://nginx.org/keys/nginx_signing.key
    module_hotfixes=true
    

    安装nginx:
    yum install nginx -y
    2、源码编译安装
    下载nginx稳定版本
    http://nginx.org/download/nginx-1.22.0.tar.gz
    先安装编译器和依赖包
    yum -y install gcc make zlib-devel pcre pcre-devel openssl-devel
    解压nginx
    unzip nginx-1.22.0.tar.gz

    编译nginx
    ./configure --prefix=/usr/local/nginx --sbin-path=/usr/bin/nginx --with-http_stub_status_module --with-http_ssl_module --with-stream make && make install
    --prefix=/usr/local/nginx 包括client_body_temp conf fastcgi_temp html logs proxy_temp scgi_temp uwsgi_temp
    --sbin-path=/usr/bin/nginx nginx执行文件的位置

    验证nginx

    [root@server html]#nginx -V
    nginx version: nginx/1.22.0
    built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) 
    built with OpenSSL 1.0.2k-fips  26 Jan 2017
    TLS SNI support enabled
    configure arguments: --prefix=/usr/local/nginx --sbin-path=/usr/bin/nginx --with-http_stub_status_module --with-http_ssl_module --with-stream
    

    保存以下内容到/lib/systemd/system/nginx.service文件,可使用systemd管理nginx,需要注意nginx文件和pid文件的位置

    [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
    ExecStartPre=/usr/bin/nginx -t
    ExecStart=/usr/bin/nginx
    ExecReload=/usr/bin/nginx -s reload
    ExecStop=/bin/kill -s QUIT $MAINPID
    PrivateTmp=true
    
    [Install]
    WantedBy=multi-user.target
    

    二、使用nginx
    1、web服务器
    将静态页面放在html文件夹内即可通过ip地址+文件名访问
    2、反向代理
    在location区域添加proxy_pass https://www.baidu.com;这一行,浏览器里打开服务器的ip地址就打开百度了

            location / {
                root   html;
                index  index.html index.htm;
                proxy_pass https://www.baidu.com;
            }
    

    3、https证书
    有多种工具可以生成本地证书,达到https的目的
    如果你有域名,可以通过各种云申请一年有效期的免费的https证书,免费证书只验证域名,在域名解析后台添加一个cname记录验证通过就可以马上得到证书文件,下载适合nginx的证书解压出来,将域名bundle.crt域名.key文件上传到服务器中,然后这两个文件的路径配置到nginx.conf文件中,要删除https部分的#注释
    使用Https://域名 时,如果有公网ip需要添加a记录,如果没有备案,很快就打不开了,只是测试的话,修改客户端电脑的hosts文件,将域名和服务器ip地址添加进去就可以打开https链接了

        # HTTPS server
        #
        server {
            listen       443 ssl;
            server_name  localhost;
    
            ssl_certificate      域名bundle.crt;
            ssl_certificate_key  域名.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;
            }
        }
    
    }
    

    4.使用keepalived实现nginx的高可用
    两台CentOS 7 分别安装keepalived和nginx
    用yum安装简单,安装后keepalived的配置文件在/etc/keepalived/keepalived.conf
    yum安装的nginx web目录在/usr/share/nginx/html/

    ! Configuration File for keepalived
    
    global_defs {
    
       router_id lb29 //两台主机的router_id不要一样
    
    }
    
    vrrp_instance VI_1 {
        state BACKUP   //MASTER,BACKUP表示主从,正常情况下请求都到master上,如果master挂了,backup自动接管请求
        interface ens32 //ens32是网卡名,根据ip a查看网卡名
        virtual_router_id 51
        priority 50   //数字表示优先级,master大于backup
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            192.168.1.123 //虚拟ip,通过这个ip来发起对nginx的请求,优先将请求定位到MASTER上,如果MASTER挂了,则BACKUP进行请求响应
        }
    }
    

    参看链接:http://nginx.org/en/linux_packages.html#RHEL-CentOS

  • 相关阅读:
    解决Nginx不支持pathinfo的问题
    PHP获取当前服务器信息的基本语句
    权重结构的加权排序算法
    《深入探讨C++对象模型》笔记 二
    链表的一些常用操作
    invalidate作用
    GetMessage()和PeekMessage()区别
    C语言程序编译的内存分配
    assert() 宏用法
    开始写博客
  • 原文地址:https://www.cnblogs.com/hfyn/p/16366582.html
Copyright © 2020-2023  润新知