Nginx服务器之基础学习

时间:2022-09-21 18:42:11

一、Nginx介绍

nginx:Nginx是一种软件服务器(轻量级),故它最主要的功能就是可以与服务器硬件结合,我们的应用程序可以放在nginx服务器上进行发布,已达到让网民浏览的效果。除此自外,Nginx是一种高性能的Http和反向代理服务器,同时也是一个代理邮件服务器。也就是说nginx可以发布网站,也可以实现负载均衡的功能,还可以作为邮件服务器实现收发邮件的功能。Nginx支持处理百万级的TCP连接,10以上的并发连接,具有跨平台性。

负载均衡(Load Balance):负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据 处理能力、提高网络的灵活性和可用性。负载均衡有两方面的含义:首先,大量的并发访问或数据流量分担到多台节点设备上分别处理,减少用户等待响应的时间;其次,单个重负载的运算分担到多台节 点设备上做并行处理,每个节点设备处理结束后,将结果汇总,返回给用户,系统处理能力得到大幅度提高。

Nginx在 Linux中的效率较window高。

缺点:rewrite功能不够强大,没有Apache模块多。

Rewrite是一种服务器的重写技术,它可以使得服务器可以支持 URL 重写,是一种最新流行的服务器技术。它还可以实现限制特定IP访问网站的功能。

二、Nginx在Centos下的安装

1、下载nginx-1.8.1.tar.gz
2、解压 tar -zxvf nginx-1.8.1.tar.gz
3、进入nginx-1.8.1 目录下 然后./configure 会出现错误 ./configure: error: C compiler cc is not found
   这是因为缺少一个 关于 gc++库
4、安装这个库文件 
    (a)、进入root权限
    (b)、安装gc++库  yum -y install gcc gcc-c++ autoconf automake
    (c)、出现Complete!表示安装成功
5、再次进入  nginx-1.8.1目录下执行 ./configure    提示 ./configure: error: the HTTP rewrite module requires the PCRE library.  (缺少PCRE library这个库文件)
6、安装PCRE library库  进入root权限  执行 yum -y install pcre pcre-devel  出现Complete!表示安装成功
7、再次进入  nginx-1.8.1目录下执行 ./configure   提示 ./configure: error: the HTTP gzip module requires the zlib library.(缺少zlib library库)
8、安装zlib library库  进入root权限 执行 yum -y install zlib zlib-devel   出现Complete!表示安装成功
9、再次进入  nginx-1.8.1目录下执行 ./configure   出现下图所示表示安装成功

Nginx服务器之基础学习
10、执行命令 make   出现 make[1]: Leaving directory `/webserver/nginx-1.8.1' 表示make完成了
11、执行命令 make install 出现  make[1]: Leaving directory `/webserver/nginx-1.8.1' 表示nginx安装完成
12、查看是否搭建成功 进入 usr/local 目录下查看是否有nginx目录 存在就表示安装成功。

Nginx服务器之基础学习

二、nginx下各个目录的作用

Nginx服务器之基础学习

conf: nginx 的配置信息
html: 网页程序
logs:日志
sbin:nginx的应用程序,比如 启动程序就在这里面

三、nginx的基本操作

1、nginx的启动:可执行文件路径+ -c +配置文件全路径(nginx.conf)
[root@iZ28b4kreuaZ sbin]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
2、nginx的停止
(a)、从容停止给与停止缓冲时间
     通过杀死进程停止   kill -QUIT + 主进程号
     查看进程:ps -ef|grep nginx
     从容停止:kill -QUIT 2072
(b)、强制停止 不管nginx能否停止就强行停止它
        pkill -9 nginx
(c)、快速停止
  kill -TERM +主进程号  kill -TERM 2132
3、重启
   方法一、(a)、验证配置文件是否正确
          方式一、进入可执行文件目录(sbin)下 执行 ./nginx -t
           方式二、/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf 
      (b)、进入可执行文件目录(sbin)下 ./nginx -s reload
    方法二、kill -HUP +主进程号  例:kill -HUP 2255  
4、关闭工作进程
   如何关闭 worker process 进程
   kill -WINCH +工作进程号
5、Nginx的平滑升级
   (1)升级就是升级nginx版本
         平滑升级:在升级时不会停掉在运行着的进程,这些进程会继续处理已接收的请求,但不会再接受新的请求,等这些老进程在处理完还在处理的请求后,就停止。此平滑升级的过程中,新开的进程会被处理。
         强制升级:停止服务器,进行升级,这样在运行中的进程就被影响了。
    (2) 如果平滑升级
         (a)、查看当前版本  sbin目录下 执行 ./nginx -V
         (b)、将要升级后的版本下载到本地 nginx-1.9.2.tar.gz  解压后 进入nginx-1.9.2目录下执行 ./configure  再执行 make (千万不要再执行再 make install)
         (c)、将nginx-1.9.2/objs/目录下的 可执行文件(nginx) 复制到 /usr/local/nginx/sbin/目录下(在复制前将老版本的ngin文件备份  例如:cp nginx nginx.old; nginx.old就是备份的文件)。
         (d)、在/nginx-1.9.2/ 目录下执行复制 cp -rfp objs/nginx /usr/local/nginx/sbin
         (e)、删除升级版本的文件 nginx-1.9.2 和 nginx-1.9.2.tar.gz
6、观察进程变化
   在平滑升级中可以通过执行命令 ps -ef|grep nginx 观察进程变化。

Nginx服务器之基础学习的更多相关文章

  1. Nginx服务器之负载均衡策略(6种)

    一.关于Nginx的负载均衡 在服务器集群中,Nginx起到一个代理服务器的角色(即反向代理),为了避免单独一个服务器压力过大,将来自用户的请求转发给不同的服务器.详情请查看我的另一篇博客. 二.Ng ...

  2. Nginx服务器之Nginx与tomcat结合访问jsp

    本文使用linux centos系统 本文概述: JSP是一种动态网页技术标准.使用的方式是在HTML文件中插入程序段和JSP标记,而形成JSP文件.使用JSP开发WEB应用可以跨平台开发.但jsp需 ...

  3. Nginx服务器之 Nginx的基本配置

    本文使用 Linux centos系统 一.Nginx虚拟主机的配置 虚拟主机:通常情况下,为了使每个服务器可以供更多用户使用,可以将一个服务器分为很多虚拟的子服务器,每个子服务器都是互相独立的.这些 ...

  4. Android移动后端服务(BAAS)快速搭建后台服务器之Bmob-android学习之旅(75)

    个人移动开发者的最头疼的问题,就是App的网络后台,包含数据库等,国外目前有比较成熟的解决方案,但是限制于墙的问题,推荐国内的解决方案,比较出名的是Bmob和AVOS cloud和Atom等,这一次我 ...

  5. Nginx服务器之负载均衡策略

    http://www.cnblogs.com/1214804270hacker/p/9325150.html

  6. .NET Core微服务系列基础文章索引(目录导航Final版)

    一.为啥要总结和收集这个系列? 今年从原来的Team里面被抽出来加入了新的Team,开始做Java微服务的开发工作,接触了Spring Boot, Spring Cloud等技术栈,对微服务这种架构有 ...

  7. .NET Core微服务系列基础文章

    今年从原来的Team里面被抽出来加入了新的Team,开始做Java微服务的开发工作,接触了Spring Boot, Spring Cloud等技术栈,对微服务这种架构有了一个感性的认识.虽然只做了两个 ...

  8. .NET Core微服务系列基础文章索引(目录导航Draft版)

    一.为啥要写这个系列? 今年从原来的Team里面被抽出来加入了新的Team,开始做Java微服务的开发工作,接触了Spring Boot, Spring Cloud等技术栈,对微服务这种架构有了一个感 ...

  9. Linux基础学习系列目录导航

    Linux基础学习-通过VM安装RHEL7.4 Linux基础学习-命令行与图形界面切换 Linux基础学习-基本命令 Linux基础学习-RHEL7.4之YUM更换CentOS源 Linux基础学习 ...

随机推荐

  1. Java排序算法——基数排序

  2. ECShop商品详细页 实现尺码颜色关联显示库存数量

    效果如下: 要开模板文件 goods.dwt  把选择尺码跟颜色的代码替换成如下,(不同模板代码可能不一样,对照去替换) <!-- {foreach from=$spec.values item ...

  3. 【leetcode❤python】Find the Difference

    #-*- coding: UTF-8 -*- class Solution(object):    def findTheDifference(self, s, t):                ...

  4. &num;&num;&num; 学习《C&plus;&plus; Primer》- 9

    Part 9: 模板与泛型编程(第16章) // @author: gr // @date: 2016-03-18 // @email: forgerui@gmail.com 1. 模板参数 类型模板 ...

  5. 笔记-动画篇-layout动画初体验

    约束动画的文章要比预计的迟迟来临,最大的原因是没有找到我认为的足够好的动画来讲解约束动画 —— 当然了,这并不是因为约束动画太难.相反,因为约束动画实在太简单了,反而没有足够多的简单动画素材让我选用. ...

  6. python基础之列表常用操作及知识点小结

    列表(list) List(列表) 是 Python 中使用最频繁的数据类型.列表可以完成大多数集合类的数据结构实现.它支持字符,数字,字符串甚至可以包含列表(所谓嵌套).列表用[ ]标识,是pyth ...

  7. 初学 Canvas &lt&semi;第一篇-基础篇&gt&semi;

    本文摘自:兴趣部落大神(为你一生画眉)-讲一讲canvas究竟是个啥? HTML5 的标准已经出来好久了,但是似乎其中的 Canvas 现在并没有在太多的地方用到.一个很重要的原因是,Canvas 的 ...

  8. Gradle之恋-任务2

    由于任务作为Gradle的核心功能模块,多花点精力是值得的,本文继上一篇主要涉及到:任务的执行顺序.为任务添加组和描述.跳过任务.扩展任务属性.定义默认任务. 任务顺序 如果构建(build)不能在清 ...

  9. Hibernate单表操作

    单一主键 assigned:由Java应用程序负责生成(即手工的赋值) native:由底层的数据库自动的生成标示符,如果是MySQL就是auto_increment,如果是Oracle就是seque ...

  10. &lbrack;EXP&rsqb;Joomla&excl; Component Easy Shop 1&period;2&period;3 - Local File Inclusion

    # Exploit Title: Joomla! Component Easy Shop - Local File Inclusion # Dork: N/A # Date: -- # Exploit ...