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

[[email protected] /]# cat /etc/redhat-release

CentOS release 6.7 (Final)

[[email protected] /]#

b. 查看系统内核uname –r

[[email protected] /]# uname -r

2.6.32-573.el6.x86_64

[[email protected] /]#

快速安装命令集合:

1 yum install pcre pcre-devel –y
2 yum install openssl openssl-devel –y
3 useradd nginx -M -s /sbin/nologin
4 ./configure --user=nginx --group=nginx --prefix=/application/nginx1.6.2  --with-http_stub_status_module  --with-http_ssl_module
5 make&&make install
6 ln -s /application/nginx1.6.2/ /application/nginx
7 /application/nginx/sbin/nginx –t
8 /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. 同样的可以通过脚本实现整体的安装(脚本如下)

 1 #!/bin/bash
 2 . /etc/init.d/functions
 3
 4
 5 nginx_tool_dir=/home/zhaofan/tools
 6 nginx_version=1.6.2
 7 nginx_install_dir=/application/nginx$nginx_version
 8 nginx_ln_dir=/application/nginx
 9
10
11 echo "------step1:install pre and openssl-dvel------"
12 yum install pcre pcre-devel openssl openssl-devel -y
13
14
15
16 echo "------step2:addd nginx user------"
17 useradd -s /sbin/nologin -M nginx
18 sleep 1
19
20 echo "------step3:upload nginx software------"
21
22 mkdir -p $nginx_tool_dir
23 cd $nginx_tool_dir
24 [ ! -f nginx-${nginx_version}.tar.gz ] && {
25     echo "you need to upload packet"
26     exit 1
27 }
28
29
30 echo "------step4:install nginx------"
31 tar xf nginx-$nginx_version.tar.gz
32 cd nginx-$nginx_version
33 ./configure --user=nginx --group=nginx --prefix=${nginx_install_dir} --with-http_stub_status_module --with-http_ssl_module
34
35 [ $? -ne 0 ] &&
36 {
37     echo "configure is errror"
38     exit 1
39
40 }
41
42
43 make && make install
44 [ $? -ne 0 ] &&
45 {
46     echo "make && make install is error"
47     exit 1
48 }
49 ln -s ${nginx_install_dir} ${nginx_ln_dir}
50
51
52 echo "------step5:check and runn nginx------"
53
54 $nginx_ln_dir/sbin/nginx -t
55 $nginx_ln_dir/sbin/nginx
56
57
58 echo ----------
59 ps -ef|grep nginx
60 echo ----------
61 lsof -i tcp:80
62 echo ----------
63 curl 127.0.0.1
64 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

会提示如下错误:

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


网关超时,一般是网关代理服务器请求后端服务时,后端服务没有在特定的时间内完成处理请求,多数是服务器过载导致没有在指定的时间内返回数据给前端代理服务器

时间: 2024-10-02 03:55:04

Nginx基础整理的相关文章

Nginx基础笔记

Nginx基础笔记 资源 安装 ubuntu下 编译安装 基本操作 HTTP基本配置 配置说明 配置文件目录结构 配置文件结构 模块 模块化 index模块 Log模块 Real IP模块 Access模块 Rewrite模块 Proxy模块 upstream模块 其他 配置静态化目录 负载均衡 控制页面缓存 nginx的内置变量 nginx小结 资源 资源 Nginx 官网 Nginx 官方下载地址 Nginx最佳实践配置项目 地址 Nginx Configuration wiki 教程 ag

【Nginx】Nginx基础架构

一.Nginx的架构设计 1)优秀的模块化设计 2)事件驱动架构 事件驱动架构是指由一些事件发生源来产生事件,由一个或多个事件收集器来收集.分发事件,然后许多事件处理器会注册自己感兴趣的事件,同时会消费这些事件. 对于Nginx而言,一般会由网卡.磁盘产生事件,事件模块将负责事件的收集.分发操作,而所有的模块都可能是事件消费者. Nginx采用完全的事件驱动架构来处理业务.对于传统web服务器而言,事件驱动往往局限在TCP链接建立.关闭事件上,一个连接建立以后,在其关闭之前的所有操作逗不再是事件

HTML基础整理(一)

HTLM基础整理--思维导图(标签部分) 其他: <sub>下标</sub>     <sup>上标</sup> 优先级,越往后优先级越高. "right"(右对齐)               "top" (顶部) 对齐方式<tr align="center"(居中) valign="middle"(居中) "left"(左对齐)          

nginx基础及其相关配置

nginx基础 Nginx的基本架构 一个master主进程,生成一个或多个worker子进程 事件驱动 epoll(边缘触发),用于Linux kqueue:用于BSD /dev/poll: IO复用器:select.poll.rt signal 支持sendfile及sendfile64 支持AIO 支持mmap 名词解释: sendfile机制:正常响应报文路径"内核空间-->用户空间-->内核空间-->客户端",如果报文在用户空间不做任何改变时,路径不再经由用

手把手教你nginx基础安装配置

手把手教你nginx基础安装配置! 一.Nginx安装及简单配置: 安装环境和依赖的包: #yum groupinstall "developmenttools" "server platform development" # yum -yinstall pcre-devel #yum install openssl-devel 下载相关nginx源码包: #wgethttp://nginx.org/download/nginx-1.6.2.tar.gz 解压缩源码

Nginx基础教程PPT

Nginx基础教程PPT By 马冬亮(凝霜  Loki) 一个人的战争(http://blog.csdn.net/MDL13412) pdf版本下载 Nginx基础教程PPT

NGINX基础(一)

NGINX基础 ============================================================================ 概述: Nginx介绍 ★engineX = Nginx NGINX is a free, open-source,high-performance HTTP server and reverse proxy, as well as an IMAP/POP3 proxyserver. (NGINX是一个免费.开源.高性能的HTT

nginx基础知识

参考博客: http://www.2cto.com/os/201212/176520.html http://os.51cto.com/art/201111/304611.htm http://www.cnblogs.com/xiaogangqq123/archive/2011/03/02/1969006.html Nginx.conf学习 #定义Nginx运行的用户和用户组 user www www: #nginx进程数,建议设置为等于CPU总核心数 worker_processes 8; #

用lua扩展你的Nginx(整理)

首先得声明,这不是我的原创,是在网上搜索到的一篇文章,原著是谁也搞不清楚了,按风格应该是属于章亦春的文章. 整理花了不少时间,所以就暂写成原创吧. 一. 概述 Nginx是一个高性能,支持高并发的,轻量级的web服务器.目前,Apache依然web服务器中的老大,但是在全球前1000大的web服务器中,Nginx的份额为22.4%.Nginx采用模块化的架构,官方版本的Nginx中大部分功能都是通过模块方式提供的,比如Http模块.Mail模块等.通过开发模块扩展Nginx,可以将Nginx打造