nginx一:安装和基本应用
Nginx:
目录
Nginx:... 1
NGINX简介和安装... 1
网站... 1
全称... 2
二次开发版... 2
Nginx的特性... 2
基本功能... 2
web服务相关的功能... 2
Nginx的基本架构:... 3
模块类型... 3
nginx主要用途... 3
nginx安装配置... 3
编译安装... 3
前期准备... 3
从官网获取源码包... 4
查看编译帮助文档... 4
安装... 4
启动NGINX. 5
NGINX配置文件... 5
配置文件组成... 5
配置文件配置指令... 6
配置文件结构... 6
全局配置网段:main block. 6
事件驱动配置... 6
http配置段... 6
配置文件简介... 7
main配置段... 7
NGINX简介和安装
网站
http://nginx.org/, C10k;
http://www.nginx.com
全称
完整写法engine X:简写为nginx
二次开发版
二次开发版tengine(淘宝), OpenResty
Nginx的特性
- 模块化设计,所以较好扩展性;
- 高可靠性
master/worker两级架构,master主控进程,worker为子进程,每个worker都有自己的 核心模块例如为了实现http功能有ht_core,和非核心模块例如ht_proxy,ht_fastcgi
- 支持热部署
不停机更新配置文件、更换日志、更新服务器程序版本;
- 低内存消耗
10000个keep-alive连接模式下的非活动连接(保持连接,但是没有数传输)仅消耗2.5M内存;
- 支持 event-driven, aio, mmap;
- 静态资源的web服务器;
- http协议的反向代理服务器;
- pop3, smpt, imap4等邮件协议的反向代理;
- 能缓存打开的文件(元数据)、
- 支持FastCGI(php-fpm), uWSGI(Python Web Framwork)等协议
- 模块化(非DSO机制),著名模块有:过滤器zip,SSI,SSL;
- 虚拟主机(server)
- keepalive
- 访问日志(支持基于日志缓冲提高其性能)
- url rewirte
- 路径别名
- 基于IP及用户的访问控制
- 支持速率限制及并发数限制;
- master/worker
基本功能
web服务相关的功能
Nginx的基本架构:
a) 一个master进程,可生成一个或多个worker进程;
b) master: 加载配置文件、管理worker进程、平滑升级,...
c) worker:http服务,http代理,fastcgi代理,...
模块类型
- 核心模块:core module
- 标准模块:
a) Standard HTTP modules
b) Optional HTTP modules
c) Mail modules
- 第三方模块:3rd party modules
- 静态资源的web服务器
- http服务器反向代理
nginx主要用途
nginx安装配置
使用yum info nginx查看相关信息,显示没有匹配的软件包可以列出,说明nginx并没有被收录至centos发行光盘中。所以可以使用epel源来安装nginx。
编译安装
前期准备
安装开发组件
yum -y groupinstall "Development Tools" "Server Platform Development"
安装PCRE,zlib,openssl
yum -y install pcre zlib openssl pcre-devel pcre-devel openssl-devel
PCRE – Supports regular expressions. Required by the NGINX Core and Rewrite modules.
zlib – Supports header compression. Required by the NGINX Gzip module.
OpenSSL – Supports the HTTPS protocol. Required by the NGINX SSL module and others.
从官网获取源码包
$ wget https://nginx.org/download/nginx-1.14.2.tar.gz
$ tar zxf nginx-1.14.2.tar.gz #解压
$ cd nginx-1.14.2
查看编译帮助文档
./config --help #返回如下图结果
注意有些模块前带有--without,这代表此模块默认加载。有些模块前带有--with这代表此模块默认不被加载需要在编译的时候使用--with-*_module编译。
安装
./configure
--prefix=/usr/local/nginx
--conf-path=/etc/nginx/nginx.conf
--user=nginx
--group=nginx
--error-log-path=/var/log/nginx/error.log
--http-log-path=/var/log/nginx/access.log
--pid-path=/var/run/nginx/nginx.pid
--lock-path=/var/lock/nginx.lock
--with-http_ssl_module
--with-http_stub_status_module
--with-http_gzip_static_module
--with-debug
make &&make install
启动NGINX
/usr/local/nginx/sbin/nginx
这个报错是因为我在编译安装时指定运行worker的用户为nginx。然而我没有在系统中创建这个用户。
NGINX配置文件
配置文件组成
- 主配置文件:nginx.conf
- 注意:
a) 除去上图所有文件外,nginx配置文件还包括在nginx.conf中使用include指令指定的配置文件。
b) 上图中有类似A.conf和A.conf.default的配置文件。其中A.conf.default,是默认的配置文件
配置文件配置指令
- 切记:配置指令必须以分号结尾
- 格式:Directive value1 [value2...];
- 变量:支持使用变量
a) 内置变量:由模块引入;
b) 自定义变量:
l set variable value;
c) 引用变量:$variable
配置文件结构
全局配置网段:main block
事件驱动配置
event {
...
}
http配置段
http {
...
server {
...
server_name
root
alias
location /uri/ {
}
...
}
server {
...
}
}
配置文件简介
main配置段
正常运行必备的配置
优化性能相关的配置
用于调试、定位问题的配置
- 正常运行必备的配置:由核心模块引入的配置
a) user USERNAME [GROUPNAME];
指定用于运行worker进程的用户和组;
eg:user nginx nginx;
b) pid /PATH/TO/PID_FILE;
指定nginx进程的pid文件路径;
eg:pid /var/run/nginx.pid;
c) worker_rlimit_nofile number;
指定一个worker进程所能够打开的最大文件数量;
- 性能优化相关的配置:
a) worker_processes auto|number;
worker进程的个数;通常应该为物理CPU核心数量减1;
可以为"auto",实现自动设定;
b) worker_cpu_affinity auto|CPUMASK CPUMASK ...;
设置worker与CPU的亲和力。通过该指令可以将一个worker进程绑定到指定CPU。
c) worker_priority number;
通过nice值,设置worker进程的优先级,从-20(最高)到19(最低),默认为0。 注意内核的有优先级为-5,因此不建议设值<=-5
- 调试、定位问题的配置:
a) daemon off|on;
是否以守护进程方式启动nignx;
eg :daemon off
b) master_process on|off;
是否以master/worker模型运行nginx,设置为off将不启动worker进程;
c) error_log file [level];
l file:其值可以是如下几种
PATH/TO/LOG:记录日志文件的位置。s
Stderr:将日志处处到标准输出
syslog:server=adderess:将日志发往指定的日志服务器
memory:size:将日志输出到内存中
l level:设定日志级别
debug, info, notice, warn, error, crit, alert, or emerg
注意:错误日志文件及其级别;出于调试的需要,可以设定为debug;但debug仅在编译时使用了“--with-debug”选项时才有效;
nginx一:安装和基本应用的更多相关文章
- Nginx服务安装配置
1.Nginx介绍 Nginx是一个高性能的HTTP和反向代理服务器,由俄罗斯人开发的,第一个版本发布于2004年10月4日.Nginx由于出色的性能,在世界范围内受到了越来越多人的关注,其特点是占有 ...
- Django Nginx+uwsgi 安装配置
使用 python manage.py runserver 来运行服务器.这只适用测试环境中使用. 正式发布的服务,我们需要一个可以稳定而持续的服务器,比如apache, Nginx, lighttp ...
- mysql 自动备份和nginx自动安装脚本
一.自动备份Mysql脚本: 如下脚本为mysql自动备份脚本,仅供参考,可以根据实际情况修改. #!/bin/sh #auto backup mysql #wugk #Define PATH定义变量 ...
- nginx的安装
1,,nginx的安装 为什么使用nginx我就不多说了,很优秀的,请再行google 在安装前,先安装pcre,安装zlib,安装openssl,以及一些其他包 yum install -y gcc ...
- nginx编译安装
Nginx编译安装 1.nginx官网:http://wiki.nginx.org/Install下载:http://nginx.org/en/download.html 2.编译安装# wget h ...
- nginx 的安装
一.必要软件准备1.安装pcre 为了支持rewrite功能,我们需要安装pcre 复制代码代码如下: # yum install pcre* //如过你已经装了,请跳过这一步 2.安装openssl ...
- linux/centos下安装nginx(rpm安装和源码安装)详细步骤
Centos下安装nginx rpm包 ...
- nginx的安装与配置
1.nginx的安装与配置 编译安装nginx需要实现安装开发包组“Development tools”和“Server Platform Development”.“Desktop Platform ...
- nginx笔记----安装
nginx的安装 ./configure make && make install (一)准备条件: 1.GCC---gun编译器集合 Nginx是一个由C语言编写的程序,因此首先需要 ...
- Linux下Nginx的安装、升级及动态添加模块
系统基于ubuntu server 14.04.4 amd64 安装 第一步 下载并解压Nginx压缩包 从Nginx官网下载Nginx,或者在Linux上执行wget http://nginx.or ...
随机推荐
- 爬虫连接mongodb、多线程多进程的使用
一.连接mongodb 1. 设置数据库 client=pymongo.MongoClient(‘localhost’) 2. db=client[‘lag ...
- Spring Boot集成JSON Web Token(JWT)
一:认证 在了解JWT之前先来回顾一下传统session认证和基于token认证. 1.1 传统session认证 http协议是一种无状态协议,即浏览器发送请求到服务器,服务器是不知道这个请求是哪个 ...
- abp(net core)+easyui+efcore实现仓储管理系统——EasyUI之货物管理七(二十五)
abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...
- 学习笔记11全局处理程序global.asax
*全局处理程序Clobal.asax只能叫这个名字,不能修改文件名,如果网站没有的话,可以自己添加. *Application[]类似于session,是全局的,Application["k ...
- 如何将excel文件导入testlink
Step 1 按照excel模板设计测试用例,其中优先级的定义为: 数值 定义 1 LOW 2 MEDIUM 3 HIGH Step 2 执行脚本,将excel转换成xml: 脚本 备注 包含:exc ...
- CSPS_108
二逼出题人写错T1题面&&写伪T3std祭
- 原生JS实现栈结构
1. 前言 栈,是一种遵从后进先出(LIFO,Later-In-First-Out)原则的有序集合.新添加的元素都保存在栈的一端,称作栈顶,另一端叫做栈底.在栈中,新元素都靠近栈顶,旧元素都靠近栈底. ...
- JAVA Rest High Level Client如何取聚合后得数据
对于刚刚学习es的童鞋来说,很容易不清楚怎么获取客户端对es文档的聚合结果,下面就演示一下模仿DSL写聚合,然后获取到聚合对结果. 一, 对于下面这个简单的聚合,目的是对于文档全文匹配,聚合颜色字段. ...
- Magicodes.Pay,打造开箱即用的统一支付库,已提供ABP模块封装
Magicodes.Pay,打造开箱即用的统一支付库,已提供ABP模块封装 简介 Magicodes.Pay,是心莱科技团队提供的统一支付库,相关库均使用.NET标准库编写,支持.NET Framew ...
- java 实现一个死锁
/** * 死锁:两个或多个线程在执行过程中,相互争夺资源而造成的一种互相等待的现象 * 实现一个死锁 * <p> * <p> * 查看死锁 * 1. 在当前类的文件夹下,打开 ...