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命令
(0)

相关推荐

  • nginx高可用

    为什么要使用nginx的高可用:因为nginx作为反向代理服务器时,有可能出现宕机的情况,而由于其反向代理的特性,就会导致其他服务器(tomcat等)无法被访问,这样项目就停止工作了.但是使用了高可用 ...

  • Centos7上配置nginx的负载均衡

    前言 在配置nginx负载均衡前.我们需要明白几个名词的概念 注: 如果不小心忘了tomcat和nginx的启动,关闭命令,可参考写在文章最后的命令 一 重要的概念理解 1 什么是nginx呢? Ng ...

  • nginx笔记—安装配置

    nginx简介 Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务.其将源代码以类BSD许可证的形式发布,因它的稳定性.丰富的 ...

  • Nginx的进程管理与重载原理

    进程结构图 Nginx是多进程结构,多进程结构设计是为了保证Nginx的高可用高可靠,包含: master进程:父进程,负责worker进程的管理 worker进程:子进程,worker进程一般配置与 ...

  • 一篇文章搞懂nginx的使用

    什么是 nginx Nginx是一个高性能的 HTTP 和反向代理服务器.特点:占有内存小,并发能力强,事实上nginx 的并发能力确实是同类网页服务器中表现较好. Nginx是专门为性能优化而开发, ...

  • Linux上安装nginx

    环境:centos7   nginx1.16.1(源码安装) 一.下载nginx源码包 地址:http://nginx.org/en/download.html Mainline version(主线 ...

  • 避坑!用 Docker 搞定 PHP 开发环境搭建(Mac、Docker、Nginx、PHP

    文章版本:2019.8 本文转载自:https://learnku.com/articles/31344 本次更新主要是对环境版本进行了更新,例如 php 7.3.7 升级到了 7.3.8,另外之前的 ...

  • Linux学习9-CentOS搭建nginx环境

    前言 之前我们搭建网站的时候,把war包放到tomcat下就能运行起来了,为什么部署上线的时候,又用到了nginx呢? nginx可以做多台服务器的负载均衡,当用户非常少的时候,可以用一台服务直接部署 ...

  • 汇编环境搭建 -- MASM32

    背景 当自己想使用C语言开发一个编译器的时候,需要将文本内容转换为汇编语言,此时需要我们对汇编语言具有一定了解及简单编写程序,否则无法继续进行编译器的编写. 开发工具 此处使用MASM32开发工具,当 ...

  • iTOP3399开发板Android应用开发环境搭建-安装AndroidStudio(一)

    配 套 资 料 在 网 盘 资 料 的 " iTOP-3399 开 发 资 料 汇 总 ( 不 含 光 盘 资 料 ) \06_iTOP-3399 开 发 板Androidstudio\安装 ...

  • 每日一课 | Python 开发环境搭建及预备知识

    今天 Python大本营每日一课 大家好,我是营长,上期营长分享了数据科学"的知识点:,不清楚的小伙伴可戳这

  • 内网基础知识及域环境搭建

    前言 民国三年等不到一场雨,此生等不到表哥一句我带你. 目录 * 1.工作组 * 2.域 * 3.活动目录 * 4.安全域的划分 * 5.域中计算机的分类 * 6.域内权限 * 7.A-G-DL-P策 ...

  • Selenium2+python自动化62-jenkins持续集成环境搭建

    一.环境准备 小编环境: 1.win10 64位 2.JDK 1.8.0_66 3.tomcat 9.0.0.M4 4.jenkins 2.0 二.安装JDK 1.安装JDK教程很多,这里就不讲了,可 ...

  • Appium+python自动化15-Mac上环境搭建

    前言 mac上搭建appium+python的环境还是有点复杂的,需要准备的软件 1.nodejs 2.npm 3.cnpm 4.appium 5.pip 6.Appium-Python-Client ...

  • python笔记25-mock-server之moco环境搭建

    前言 mock除了用在单元测试过程中,还有一个用途,当前端开发在开发页面的时候,需要服务端提供API接口 此时服务端没开发完成,或者说没搭建测试环境,这个时候前端开发会自己mock一个api服务端,自 ...