• Nginx环境搭建与使用


    一、背景

    之前测试的项目前后端的"路由"(负责把前端发过来的请求转发到相应的后端服务上)要用Nignx来取代原来的tomcat的http server功能,做这个替换的原因是Nignx轻量级,抗并发,处理静态文件好

    Nignx常用做静态内容服务和代理服务器,直接外来请求转发给后面的应用服务器(tomcat,Django等),tomcat更多用来做一个应用容器,让java web app泡在里面的东西

    严格意义上来讲,Nignx应该叫做HTTP Server,而tomcat是一个Application Server是一个Servlet/JSO应用的容器

    客户端通过HTTP Server(Nignx)访问服务器上存储的资源HTML文件,图片文件等),HTTP Server(Nignx)只是把服务器上的文件通过HTTP协议传输给客户端

    应用服务器(tomcat)往往是运行在HTTP Server(Nignx)的背后,执行应用,将动态的内容转化为静态的内容之后,通过HTTP Server(Nignx)分发到客户端。

    请求的流转过程概图:

    注意:nginx只是把请求做了分发,不做处理!!!

    二、Nginx环境搭建

    1、下载

    2、解压

    # tar -xzf nginx-1.16.1.tar.gz

    3、安装依赖的基础组件

    因为nginx默认会依赖一些基础组件,这些依赖组件主要有g++,gcc, openssl-devel, pcre-devel和zlib-devel,所以在正式安装nginx前最好先安装好这些组件。可以使用yum一次性安装,运行以下命令:

    # yum -y install gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel

    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

    5、查看nginx版本

    # nginx -v

    显示版本号,说明安装成功

    三、使用

    1、配置文件

    Nginx的配置文件默认为nginx.conf,我这里通过新建了一个conf.d文件夹和.conf文件(.conf文件具体的内容参考nginx.conf)来完成配置,具体如下:

    upstream模块要负责负载均衡的配置,通过默认的轮询调度方式来分发请求到后端服务器

    • -- max_fails:表示失败最大次数,超过失败最大次数暂停服务

    • -- fail_timeout:表示如果请求受理失败,暂停指定的时间之后重新发起请求

    2、Nginx的启动

    直接输入nginx命令,即可启动

    # nginx

    还可以通过systemctl来启动nginx

    # systemctl start nginx

    3、Nginx的停止

    nginx的停止有两种方式,分别是
    
    1. nginx -s stop命令
    
    2. kill -9 nginx_pid命令      # nginx_pid指的是主进程的pid号

    同理,也可以通过systemctl来停止nginx

    # systemctl stop nginx

    需要说明的是,使用systemctl命令结束nginx进程时,只有通过systemctl启动的nginx才能被正常结束,而通过运行nginx命令启动的进程是不能被正常结束的。

    使用kill命令来结束nginx进程。结束nginx进程的信号有两个,分别是TERM和QUIT:

    # kill -s QUIT  nginx_pid
    # kill
    -s TERM nginx_pid

    前者(QUIT)用于快速停止nginx,后者(TERM)用于平缓停止nginx,区别在于平缓停止nginx会等待工作进程将请求结束以后再停止。

    4、Nginx的配置文件重载

    nginx的配置文件重载,这也是一个很重要的功能,因为很多时候需要修改nginx的配置文件,修改完成后需要重新加载配置文件,方法有2个

    1. nginx -s reload
    2. kill -s HUP nginx_pid命令
  • 相关阅读:
    关于XML文档
    Why sql is called structured query language?1
    UML学习---交互
    C#为什么不采用多继承:
    url中
    array
    hard
    构造函数返回值
    布局容器layout Container
    k8s的概念
  • 原文地址:https://www.cnblogs.com/ailiailan/p/12020992.html
Copyright © 2020-2023  润新知