Nginx基础整理
目录结构如下:
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 /]#
快速安装命令集合:
yum install pcre pcre-devel –y
yum install openssl openssl-devel –y
useradd nginx -M -s /sbin/nologin
./configure --user=nginx --group=nginx --prefix=/application/nginx1.6.2 --with-http_stub_status_module --with-http_ssl_module
make&&make install
ln -s /application/nginx1.6.2/ /application/nginx
/application/nginx/sbin/nginx –t
/application/nginx/sbin/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. 同样的可以通过脚本实现整体的安装(脚本如下)
#!/bin/bash
. /etc/init.d/functions nginx_tool_dir=/home/zhaofan/tools
nginx_version=1.6.
nginx_install_dir=/application/nginx$nginx_version
nginx_ln_dir=/application/nginx echo "------step1:install pre and openssl-dvel------"
yum install pcre pcre-devel openssl openssl-devel -y echo "------step2:addd nginx user------"
useradd -s /sbin/nologin -M nginx
sleep echo "------step3:upload nginx software------" mkdir -p $nginx_tool_dir
cd $nginx_tool_dir
[ ! -f nginx-${nginx_version}.tar.gz ] && {
echo "you need to upload packet"
exit
} echo "------step4:install nginx------"
tar xf nginx-$nginx_version.tar.gz
cd nginx-$nginx_version
./configure --user=nginx --group=nginx --prefix=${nginx_install_dir} --with-http_stub_status_module --with-http_ssl_module [ $? -ne ] &&
{
echo "configure is errror"
exit } make && make install
[ $? -ne ] &&
{
echo "make && make install is error"
exit
}
ln -s ${nginx_install_dir} ${nginx_ln_dir} echo "------step5:check and runn nginx------" $nginx_ln_dir/sbin/nginx -t
$nginx_ln_dir/sbin/nginx echo ----------
ps -ef|grep nginx
echo ----------
lsof -i tcp:
echo ----------
curl 127.0.0.1
echo "----------nginx is installed------------"
注意
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
会提示如下错误:
./configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using --without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using --with-pcre=<path> option.
故障二:没有安装openssl和openssl-devel
./configure: error: SSL modules require the OpenSSL library.
You can either do not enable the modules, or install the OpenSSL library
into the system, or build the OpenSSL library statically from the source
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基础整理 https://www.cnblogs.com/guigujun/p/6588545.html 目录结构如下: Nginx基础知识 Nginx HTTP服务器的特色及优点 Ngin ...
- 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 ...
随机推荐
- 【BZOJ1067】【POJ2637】降雨量
1067: [SCOI2007]降雨量 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 3004 Solved: 767[Submit][Status] ...
- Android -- 自定义ImageView(圆形头像)
1. 原图
- 找到一个Flex中LineChart很好的学习博客
http://blog.flexexamples.com/category/linechart/ 里面链接复制的时候失效了,请直接点击原页面进行查看 Setting specific minimum ...
- hadoop编程小技巧(5)---自定义输入文件格式类InputFormat
Hadoop代码测试环境:Hadoop2.4 应用:在对数据需要进行一定条件的过滤和简单处理的时候可以使用自定义输入文件格式类. Hadoop内置的输入文件格式类有: 1)FileInputForma ...
- 纪念逝去的岁月——C/C++交换排序
交换排序 代码 #include <stdio.h> void printList(int iList[], int iLen) { ; ; i < iLen; i++) { pri ...
- 一个简单的零配置命令行HTTP服务器 - http-server (nodeJs)
http-server 是一个简单的零配置命令行HTTP服务器, 基于 nodeJs. 如果你不想重复的写 nodeJs 的 web-server.js, 则可以使用这个. 安装 (全局安装加 -g) ...
- js中return,this,arguments,currentStyle和getComputedStyle小析
一.return返回值:1.函数名+括号:fn()==>return 后面的值2.所有函数默认返回值:未定义3.return后面的任何代码都不会执行二.this:当前对象1.当某个对象后边加事件 ...
- maven创建web工程,并导入到eclipse中
maven版本:3.1.0,eclipse版本:4.3 JDK:1.7 创建工程名是sa的maven工程 mvn archetype:create -DgroupId=com.bing-Dartifa ...
- [LintCode] Valid Palindrome 验证回文字符串
Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignori ...
- ubuntu上安装Eclipse时遇到的一个错误
A Java Runtime Environment (JRE) or Java Development Kit (JDK)must be available in order to run Ecli ...