[转帖]nginx基础整理
nginx基础整理
https://www.cnblogs.com/guigujun/p/6588545.html
目录结构如下:
Nginx基础知识
Nginx HTTP服务器的特色及优点
Nginx的主要企业功能
Nginx作为web服务器的主要应用场景包括:
Nginx的安装
安装环境
快速安装命令集合
各个命令解释
脚本
注意
安装故障总结
故障一:没有安装pcre或pcre-devel
故障二:没有安装openssl和openssl-devel
常用的Nginx http功能模块
Nginx的目录结构
Nginx最重要的配置文件nginx.conf详解
生产中常见的网站状态码
Nginx基础知识:
Nginx HTTP服务器的特色及优点
a. 支持高并发:能支持几万并发连接(特别是静态小文件业务环境)
b. 资源消耗少:在3万并发连接下,开启10个Nginx线程消耗的内存不到200MB
c. 可以做HTTP反向代理及加速缓存,即负载均衡功能,内置对RS节点服务器健康检查功能,这相当于专业的Haproxy软件或LVS的功能
d. 具备Squid等专业缓存软件等的缓存功能
e. 支持异步网络I/O事件模型epoll
Nginx的主要企业功能
a. 使用Nginx运行HTML,JS,CSS,小图片等静态数据(此功能类似Lighttpd软件)
b. Nginx结合FastCGI运行php等动态程序(例如使用fastcgi_pass方式)
c. Nginx结合Tomcat/Resin等支持Java动态程序(常用的proxy_pass)
Nginx作为web服务器的主要应用场景包括:
a. 使用Nginx运行HTML,JS,CSS,小图片等静态数据(此功能类似Lighttpd软件)
b. Nginx结合FastCGI运行php等动态程序(例如使用fastcgi_pass方式)
c. Nginx结合Tomcat/Resin等支持Java动态程序(常用的proxy_pass)
一般情况下普通php引擎支持的并发连接参考为300-1000,Java引擎和数据库的并发连接参考值为300-1500.当然架构不同可能会有浮动
Nginx的安装
安装环境
a. 查看当前系统cat /etc/redhat-release
[root@nginx /]# cat /etc/redhat-release
CentOS release 6.7 (Final)
[root@nginx /]#
b. 查看系统内核uname –r
[root@nginx /]# uname -r
2.6.32-573.el6.x86_64
[root@nginx /]#
快速安装命令集合:
各个命令解释
a. 安装前需要安装pcre库(兼容正则表达式)
yum install pcre pcre-devel –y
b. 还需要安装openssl
yum install openssl openssl-devel –y
c. 编译之前还需要创建一个用户
useradd nginx -M -s /sbin/nologin
d. 编译安装:
./configure --user=nginx --group=nginx --prefix=/application/nginx1.6.2 --with-http_stub_status_module --with-http_ssl_module
make&&make install
e. 安装完成后的检查与启动
/application/nginx/sbin/nginx –t
/application/nginx/sbin/nginx
脚本
a. 同样的可以通过脚本实现整体的安装(脚本如下)
注意
a. 如果是学习,需要关闭防火墙和selinux,关闭方法如下:
/etc/init.d/iptables stop
setenforce 0临时关闭)
b. 如果想要永久关闭selinux
vi编辑/etc/selinux/config进行下面更改
SELINUX=disabled
c. 也可以通过命令sed直接对命令进行修改
sed -i 's#SELINUX=enable#SELINUX=disabled#g' /etc/selinux/config
按照上述操作启动成功后,通过浏览器打开访问:
安装故障总结
故障一:没有安装pcre或pcre-devel
会提示如下错误:
1 ./configure: error: the HTTP rewrite module requires the PCRE library. 2 You can either disable the module by using --without-http_rewrite_module 3 option, or install the PCRE library into the system, or build the PCRE library 4 statically from the source with nginx by using --with-pcre=<path> option.
故障二:没有安装openssl和openssl-devel
1 ./configure: error: SSL modules require the OpenSSL library. 2 You can either do not enable the modules, or install the OpenSSL library 3 into the system, or build the OpenSSL library statically from the source 4 with nginx by using --with-openssl=<path> option.
常用的Nginx http功能模块
|
Nginx http功能模块 |
模块说明 |
|
Ngx_http_core_module |
包括一些核心的http参数配置,对应Nginx的配合为HTTP区块部分 |
|
Ngx_http_access_module |
访问控制模块,用来控制网站用户对Nginx的访问 |
|
Ngx_http_gzip_module |
压缩模块,对Nginx返回的数据压缩,属于性能优化模块 |
|
Ngx_http_fastcgi_module |
FastCGI模块,和动态应用相关的模块,例如PHP |
|
Ngx_http_proxy_module |
Proxy 代理模块 |
|
Ngx_http_upstream_module |
负载均衡模块,可以实现网站的负载均衡功能及节点的健康检查 |
|
Ngx_http_rewrite_module |
URL地址重写模块 |
|
Ngx_http_limit_conn_module |
限制用户并发连接数及请求数模块 |
|
Ngx_http_limit_req_module |
根据定义的key限制Nginx请求过程的速率 |
|
Ngx_http_log_module |
访问日志模块,以指定的格式记录Nginx客户访问日志等信息 |
|
Ngx_http_auth_basic_module |
web认证模块,设置web用户通过账号,密码访问Nginx |
|
Ngx_http_ssl_module |
ssl模块,用于加密的http连接如https |
|
Ngx_http_stub_status_module |
记录Nginx基本访问状态信息等的模块 |
Nginx的目录结构
|-- client_body_temp
|-- conf #这是Nginx所有配置文件的目录
| |-- fastcgi.conf #fastcgi相关参数的配置文件
| |-- fastcgi.conf.default
| |-- fastcgi_params #fastcgi的参数文件
| |-- fastcgi_params.default
| |-- koi-utf
| |-- koi-win
| |-- mime.types #媒体类型
| |-- mime.types.default
| |-- nginx.conf #nginx默认的主配置文件
| |-- nginx.conf.default
| |-- scgi_params #scgi相关参数
| |-- scgi_params.default
| |-- uwsgi_params #uwsgi相关参数
| |-- uwsgi_params.default
| `-- win-utf
|-- fastcgi_temp #fastcgi临时数据目录
|-- html #编译安装Nginx的默认站点目录
| |-- 50x.html #错误页面优雅替代显示文件
| `-- index.html #默认的首页文件
|-- logs #默认的日志路径包括错误日志和访问日志
| |-- access.log
| |-- error.log
| `-- nginx.pid
|-- proxy_temp #临时目录
|-- sbin Nginx命令目录
| `-- nginx 启动命令
|-- scgi_temp #临时目录
`-- uwsgi_temp #临时目录
Nginx最重要的配置文件nginx.conf详解
通过命令将nginx配置文件精简化显示(去掉#注释和空行的内容):
egrep -v "#|^$" nginx.conf.default >nginx.conf
worker_processes 1; #worker进程的数量
events { #事件区块的开始
worker_connections 1024; #每个worker进程支持的最大连接数
} #事件区块的结束
http { #http区块的开始
include mime.types; #nginx支持的媒体类型库文件
default_type application/octet-stream; #默认的媒体类型
sendfile on; #开启高效传输模式
keepalive_timeout 65; #连接超时
server { #第一个server区块开始,表示一个独虚拟主机站点
listen 80; #服务端口,默认80
server_name localhost; #提供服务的域名主机名
location / { #第一个location区块开始
root html; #站点的根目录,相当于Nginx的安装目录
index index.html index.htm; #默认的首页文件,如果多个用空格分开
} #第一个location区块结束
error_page 500 502 503 504 /50x.html; #出现对象http状态码时使用50x.html回应用户
location = /50x.html {
root html;
}
}
} #http区块结束
生产中常见的网站状态码
|
状态码 |
详细描述说明 |
|
200-OK |
服务器成功返回网页,这是成功的状态码 |
|
301-Moved Permanently |
永久跳转,所请求的网页将永久跳转到被设定的新位置 |
|
403-Forbidden |
禁止访问,虽然这个请求时合法的,但是服务器端因为匹配了预先设置的规则而拒绝相应客户端的请求,此类问题一般为服务器或服务器权限配置不当所致 |
|
404-Not Found |
服务器找不到客户端请求的指定页面,可能是客户端请求了服务器上不存在的资源所导致 |
|
500-Internal Server Error |
内部服务器错误,服务器遇到了意料不到的情况,不能完成客户的请求,这是一个较为笼统的报错,一般为服务器的设置或内部程序问题导致 |
|
502-Bad Gateway |
坏的网关,一般是代理服务器请求后端服务时,后端服务不可用或没有完成相应网关服务器,这通常为反向代理服务器下面的节点出问题导致 |
|
503-Service Unavailable |
服务当前不可用,可能是服务器超载或停机维护导致的,或者是反向代理没有可以提供的服务节点 |
|
504-Gateway Timeout |
网关超时,一般是网关代理服务器请求后端服务时,后端服务没有在特定的时间内完成处理请求,多数是服务器过载导致没有在指定的时间内返回数据给前端代理服务器 |
[转帖]nginx基础整理的更多相关文章
- Nginx基础整理
目录结构如下: Nginx基础知识 Nginx HTTP服务器的特色及优点 Nginx的主要企业功能 Nginx作为web服务器的主要应用场景包括: Nginx的安装 安装环境 快速安装命令集合 各个 ...
- nutch的一些基础整理
nutch的一些基础整理 原创 2015年03月22日 18:18:01 标签: nutch / 240 编辑 删除 一.关于配置文件: nutch-default.xml:爬虫的默认配置.在${nu ...
- nginx 基础文档
Nginx基础 1. nginx安装 2. nginx 编译参数详解 3. nginx安装配置+清缓存模块安装 4. nginx+PHP 5.5 5. nginx配置虚拟主机 6. ngi ...
- Nginx基础教程PPT
Nginx基础教程PPT By 马冬亮(凝霜 Loki) 一个人的战争(http://blog.csdn.net/MDL13412) pdf版本号下载 watermark/2/text/aHR0cD ...
- 机器学习 —— 基础整理(六)线性判别函数:感知器、松弛算法、Ho-Kashyap算法
这篇总结继续复习分类问题.本文简单整理了以下内容: (一)线性判别函数与广义线性判别函数 (二)感知器 (三)松弛算法 (四)Ho-Kashyap算法 闲话:本篇是本系列[机器学习基础整理]在time ...
- MySQL基础整理(一)之SQL基础(未完成)
大家好,我是浅墨竹染,以下是MySQL基础整理(一)之SQL基础 1.SQL简介 SQL(Structure Query Language)是一种结构化查询语言,是使用关系模型的数据库应用语言. 2. ...
- 用lua扩展你的Nginx(整理)-----openresty
用lua扩展你的Nginx(整理) 首先得声明.这不是我的原创,是在网上搜索到的一篇文章,原著是谁也搞不清楚了.按风格应该是属于章亦春的文章. 整理花了不少时间,所以就暂写成原创吧. 一. 概述 Ng ...
- Linux - nginx基础及常用操作
目录 Linux - nginx基础及常用操作 Tengine淘宝nginx安装流程 nginx的主配置文件nginx.conf 基于域名的多虚拟主机实战 nginx的访问日志功能 网站的404页面优 ...
- Nginx基础知识介绍
Nginx基础知识介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Nginx概述 Nginx是免费的.开源的.高性能的HTTP和正向/反向代理服务器.邮件代理服务器.以及T ...
随机推荐
- Compiling OpenCV: VTK Not Found on Ubuntu 16.04 LTS
When installing OpenCV: /usr/bin/vtk not found libvtkRenderingPythonTkWidgets.so not found /usr/bin/ ...
- zabbix-3.4邮件报警
1.开启smtp邮件传输协议 会生成一个授权码后面有用 2.卸载旧版的邮件服务 rpm -qa | grep mailx rpm -qa | grep sendmail rpm -qa | grep ...
- 肿瘤免疫疗法 | 细胞治疗和PD1/PDL1 | Tumor immunotherapy | cell therapy
人类肿瘤治疗史上的里程碑无疑一定有一座是肿瘤免疫疗法的. 而肿瘤免疫疗法的主要两大领域,细胞治疗以及以PD1/PDL1为代表的免疫检查点抑制剂都在飞速发展. 目前,已经有5种抗PD1/PDL1抗体药物 ...
- fork 可能导致subprocess崩溃
https://docs.python.org/zh-cn/3/library/multiprocessing.html 在 3.8 版更改: 对于 macOS,spawn 启动方式是默认方式. 因为 ...
- Java Web J2EE下的两大框架SSH和SSM对比
当下流行的两种企业开发MVC开源框架,是我们Java程序猿必备知识能力.MVC,即模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界 ...
- Eclipse 的快捷键以及文档注释、多行注释的快捷键 一、多行注释快捷键
一.多行注释快捷键 1.选中你要加注释的区域,用ctrl+shift+C 或者ctrl+/ 会加上//注释2.先把你要注释的东西选中,用shit+ctrl+/ 会加上/* */注释 3.以上快捷 ...
- Android 关于selector中item顺序的问题
selector的item从上到下是按照匹配原则来改变状态的,一旦匹配到某个item的状态,就不会继续往下匹配了. https://blog.csdn.net/l403040463/article/d ...
- ISO/IEC 9899:2011 条款6.4——词法元素
6.4 词法元素 1.token(标记): keyword(关键字) identifier(标识符) constant(常量) string-literal(字符串字面量) punctuator(标点 ...
- ISO/IEC 9899:2011 条款6.5.5——乘法操作符
6.5.5 乘法操作符 语法 1.multiplicative-expression: cast-expression multiplicative-expression * cast-e ...
- 我非要捅穿这 Neutron(二)上层资源模型篇
目录 文章目录 目录 Neutron 的资源模型 Network 运营商网络和租户网络 创建运营商网络 创建租户网络 创建外部网络 Network 小结 Subnet IP 核心网络服务 Subnet ...