一、认识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. Mysql行转列的简单应用

    最近在复习过程中愈发觉得,有些东西久了不用,真的会忘~——~. 将上面的表格转换为下面的表格 我拼sql拼了好久还是没弄出来,还是偶然看到我以前的笔记,才想起有行转列这样的操作(太久没有写过复杂点的s ...

  2. Java 快排 排序

    一.快排的一种 ==================== public class myMain { public static void main(String[] args) { int t[] ...

  3. Vue+webpack报错: listen EADDRINUSE: address already in use :::8080

    如果本地运行多个vue+webpack项目会报错:listen EADDRINUSE: address already in use :::8080: 提示含义:地址端口已经被占用 注:8080指的是 ...

  4. Centos7.4简单安装使用gitlab+maven+jenkins实现java代码的持续集成部署

    1.工具的简单介绍 gitlab--源代码版本管理控制工具 maven--java代码编译构建工具 jenkins--基于java开发的自动化持续集成部署工具 sonar--代码质量管理工具 2.gi ...

  5. Python图形界面开发—wxPython库的布局管理及页面切换

    前言 wxPython是基于Python的跨平台GUI扩展库,对wxWidgets( C++ 编写)封装实现.GUI程序的开发中界面布局是很重要的一个部分,合理的页面布局能够给予用户良好使用体验.虽然 ...

  6. Django_杂

    1.url带一些GET参数"url?a=1&b=2",通过QueryDict以及其urlencode()进行处理 from django.http.request impo ...

  7. dubbo实际应用中的完整的pom.xml

    http://blog.csdn.net/rodjohnsondoctor/article/details/39030601

  8. Daily Scrum3 11.5

    昨天的任务已经完成,但是大家分析后发现进度稍有些慢.今天各自都在调整进度,不再拖延别人的工作. 今日任务: 杨伊:做问卷调查,准备用户体验篇内容. 徐钧鸿:把Xueba中Utility 向闸瓦移植 张 ...

  9. fullPage全屏高度自适应

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  10. <!CDATA[]]用法详解

    所有 XML 文档中的文本均会被解析器解析. 只有 CDATA 区段(CDATA section)中的文本会被解析器忽略. PCDATA PCDATA 指的是被解析的字符数据(Parsed Chara ...