一、认识nginx

常用的web服务有Apache、IIS(windows系统)、Lighttpd、Tomcat、Nginx等。Nginx是一个开源的,支持高性能、高并发的www服务和代理服务软件。它是由俄罗斯人Igor Sysoev开发的,最初被应用在俄罗斯的大型网站WWW.rambler.ru上。后来作者讲源码以类似BSD许可证的形式开源出来供全球使用。

Nginx因具有高并发(特别擅长于静态资源)、占用系统资源少等特性,且功能丰富而逐渐流行起来

二、nginx功能应用

  • 做web服务软件:Nginx是一个支持高性能、高并发的web服务软件,它具有很多优秀的特性,作为web服务器,与Apache相比,Nginx能够支持更多的并发连接访问,但占用的资源却很少,效率更高,在功能上也强大了很多,几乎不逊色与Apache
  • 反向代理或负载均衡服务:在方向代理或负载均衡服务方面,Nginx可以作为web服务、PHP等动态服务及Memcached等缓存的代理服务器,它具有类似专业反向代理软件(如Haproxy)的功能,同时也是一个优秀的邮件代理服务软件(最早开发这个产品的目的之一就是作为邮件代理服务),但是Nginx的代理功能还是相对简单了些,特别是不支持TCP的代理(Nginx1.90以上的版本已支持TCP代理)
  • 前端业务数据缓存服务:在web缓存服务方便,Nginx可通过自身的proxy_cache模块实现类Squid等专业缓存软件的功能。

特点及优势:

支持高并发:能支持几万并发连接(特别是静态小文件业务环境)

  • 资源消耗少:在3万并发连接下,开启10个Nginx线程消耗的内存不到200MB
  • 可以做HTTP反向代理及加速缓存,即负载均衡功能,内置对RS(real server)节点服务器健康检查功能,这相当于专业的Haproxy软件或LVS的功能
  • 具备Squid等专业缓存软件等的缓存功能
  • 支持异步网络I/O事件模型epoll(linux 2.6)

注:

大并发写操作:先写内存,再将内存数据存储到硬盘中---保证访问效率

大并发读操作:先写磁盘,再将磁盘数据存储到内存中---保证数据安全

总结:高并发→资源消耗少→功能多样(web、负载均衡、支持缓存)→通讯模型先进(epoll)

三、安装编译安装nginx

本机环境:

[root@web ~]# cat /etc/redhat-release
CentOS release 6.9 (Final)
[root@web ~]# uname -r
2.6.-.el6.x86_64

第一里程碑:安装nginx所需的(pcre-devel openssl-devel)库

[root@web ~]# yum install –y pcre-devel openssl-devel

第二里程碑:下载安装nginx

#下载软件包
Wget http://110.96.192.8:83/1Q2W3E4R5T6Y7U8I9O0P1Z2X3C4V5B/mirrors.sohu.com/nginx/nginx-1.10.2.tar.gz
#解压
tar zxf nginx-1.10..tar.gz
useradd –s /sbin/nologin –M www #创建用户
cd ../nginx-1.10./ #进入解压后的目录
#编译并安装
./configure --prefix=/usr/local/nginx-1.10. --user=www --group=www --with-http_stub_status_module --with-http_ssl_module
Make && make install 创建软连接
ln -s /usr/local/nginx-1.10./ /usr/local/nginx #方便后期使用或升级版本

注:本次下载使用的是搜狐镜像源,可以到官方镜像源下载。

Nginx官方网站:http://nginx.org/download/nginx-1.10.2.tar.gz
搜狐镜像源:http://mirrors.sohu.com/nginx/

第三里程碑:检查并启动服务

#检查安装情况
[root@web ~]# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.10.
built by gcc 4.4. (Red Hat 4.4.-) (GCC)
built with OpenSSL 1.0.1e-fips Feb
TLS SNI support enabled
configure arguments: --user=www --group=www --prefix=/usr/local/nginx-1.10./ --with-http_stub_status_module --with-http_ssl_module #启动服务:
[root@web ~]# /usr/local/nginx/sbin/nginx

#测试访问
直接访问服务器IP,会显示nginx的页面。

第四里程碑:nginx相关启动参数

[root@web ~]# /usr/local/nginx/sbin/nginx -h
nginx version: nginx/1.10.
Usage: nginx [-?hvVtTq] [-s signal] [-c filename] [-p prefix] [-g directives] Options:
-?,-h : this help
-v : show version and exit
-V : show version and configure options then exit
-t : test configuration and exit
-T : test configuration, dump it and exit
-q : suppress non-error messages during configuration testing
-s signal : send signal to a master process: stop, quit, reopen, reload
-p prefix : set prefix path (default: /usr/local/nginx-1.10.//)
-c filename : set configuration file (default: conf/nginx.conf)
-g directives : set global directives out of configuration file

四、nginx程序目录结构及配置文件

1、nginx目录结构

[root@web local]# tree -L  nginx
nginx
├── conf <-软件配置文件保存目录(fastcgi、scgi、uwsgi等)
├── html <-网站站点目录
├── logs <-日志文件保存目录
└── sbin <-Nginx命令保存目录

2、nginx配置文件

Conf文件夹中包含以下两个文件:
nginx.conf <- nginx程序的主配置文件
nginx.conf.default <- nginx配置备份文件

3、配置文件web服务常用参数

[root@web conf]# egrep -v "#|^$" nginx.conf.default    #去掉包含#号和空行的内容
worker_processes ; #worker进程的数量
events { #事件区块开始
worker_connections ; #每个worker进程支持的最大连接数
} #事件区块结束
http { #HTTP区块开始
include mime.types; #nginx支持的媒体类型库文件
default_type local/octet-stream; #默认的媒体类型
sendfile on; #开启高效传输模式
keepalive_timeout ; #连接超时
server { #第一个server区块开始,表示一个独立的虚拟主机站点
listen ; #提供服务的端口,默认80
server_name localhost; #提供服务的域名主机名
location / { #第一个location区块开始
root html; #站点的根目录,相当于nginx的安装目录
index index.html index.htm; #默认的首页文件,多个空格分开
} #第一个localtion区块结果
error_page /50x.html; #出现对应的http状态码时,使用50x.html回应客户
location = /50x.html { #location区块开始,访问50x.html
root html; #指定对应的站点目录为html
}
}
} #HTTP区块结束

nginx之编译安装的更多相关文章

  1. Nginx 的编译安装和URL地址重写

    本文转自:http://www.178linux.com/14119#rd?sukey=ecafc0a7cc4a741b573a095a3eb78af6b4c9116b74d0bbc9844d8fc5 ...

  2. nginx应用编译安装

    nginx应用编译安装: 安装编译所需依赖包: # apt-get install make gcc g++ libcurl3-openssl-dev libfreetype6-dev libmcry ...

  3. nginx的编译安装以及启动脚本编写

    Nginx的编译安装和启动脚本的编写 Nginxd的功能强大,可以实现代理.负载均衡等企业常用的功能.下面介绍一下nginx的编译安装方法: 1. 下载 官方下载地址:http://nginx.org ...

  4. 初识Nginx及编译安装Nginx

    初识Nginx及编译安装Nginx 环境说明: 系统版本    CentOS 6.9 x86_64 软件版本    nginx-1.12.2 1.什么是Nginx? 如果你听说或使用过Apache软件 ...

  5. 【01】Nginx:编译安装/动态添加模块

    写在前面的话 说起 Nginx,别说运维,就是很多开发人员也很熟悉,毕竟如今已经 2019 年了,Apache 更多的要么成为了历史,要么成为了历史残留. 我们在提及 Nginx 的时候,一直在强调他 ...

  6. 【nginx运维基础(1)】Nginx的编译安装与使用

    nginx的官方手册: http://nginx.org/en/docs/ 编译安装 下载地址: http://nginx.org/en/download.html # 为了支持rewrite功能,我 ...

  7. Nginx服务编译安装、日志功能、状态模块及访问认证模式实操

    系统环境 [root@web ~]# cat /etc/redhat-release CentOS release 6.9 (Final) [root@web ~]# uname -a Linux d ...

  8. Nginx的编译安装及选项

    编译安装Nginx1.安装常见的工具和库(GCC.PCRE.zlib.OpenSSL) Nginx是一个由C语言编写的,所以需要一个编译工具如GNU的GCC[root@www ~]# yum inst ...

  9. Nginx之编译安装的nginx加入systemctl

    编译安装的nginx需要添加rc.local 编译安装后设置 /usr/lib/systemd/system/nginx.service [Unit] Description=nginx After= ...

随机推荐

  1. 《Redis设计与实现》阅读笔记(四)--字典

    字典 字典,map,是用于保存键值对的抽象数据结构,是hash表实现.字典中的键唯一,通过键来操作值.Redis的数据库使用字典来作为底层实现. 定义 Redis的字典使用哈希表作为底层实现,一个哈希 ...

  2. Windows下LimeSDR Mini使用说明

    本文内容.开发板及配件仅限用于学校或科研院所开展科研实验! 淘宝店铺名称:开源SDR实验室 LimeSDR链接:https://item.taobao.com/item.htm?spm=a230r.1 ...

  3. 初学node.js-npm使用(2)

    1.安装Node封装模块 安装Node封装模块很重要,因为开发项目中会用到各种各样的功能,这时就需要去下载开源的模块 使用npm install <module_name> module_ ...

  4. umount命令详解

    基础命令学习目录首页                                    umount 用来卸载设备 -a:卸除/etc/mtab中记录的所有文件系统: -h:显示帮助: -n:卸除 ...

  5. Windows搭建python开发环境

    python你不去认识它,可能没什么,一旦你认识了它,你就会爱上它 基本概念Python(英语发音:/ˈpaɪθən/), 是一种面向对象.解释型计算机程序设计语言,由Guido van Rossum ...

  6. xml配置文件特殊符号的处理方法

    2017.7.19遇到问题:偶然出现“认证失败,请重新登录”的现象   在xml中英文问号“?”是可以被正常解析的,但是以下这几种符号是不能正常解析的:分别是“&”.“<”.“>” ...

  7. servlet 和 threadlocal 与 web容器(理解threadlocal)

    同步机制采用了“以时间换空间”的方式,提供一份变量,让不同的线程排队访问.而ThreadLocal采用了“以空间换时间”的方式,为每一个线程都提供了一份变量的副本,从而实现同时访问而互不影响. htt ...

  8. Trick and Magic(OO博客第二弹)

    代码是设计,不是简单的陈述.而设计不仅要求功能的正确性,更注重设计风格和模式. 真正可以投入应用的程序设计,不是那种无脑的“黑箱”,超巨大的数组,多重循环暴力搜索,成吨全局变量……事实上,在实际应用中 ...

  9. 用java进行简单的万年历编写

    import java.util.Scanner; public class PrintCalendarDemo1 { public static void main(String[] args) { ...

  10. golang 反射

    参考:|--http://blog.51cto.com/speakingbaicai/1707637 |--https://studygolang.com/articles/6324 反射是在gola ...