Nginx

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx相关的知识,希望对你有一定的参考价值。

第1章 nginx

1.1 什么是nginx?

nginx是一个开源,支持高性能,高并发的www服务和代理服务的软件

nginx因具有高并发,尤其是静态资源,占用系统资源少,并且功能丰富而逐渐流行起来

1.2 nginx 软件特性说明:

1.      支持高并发,能支持几万并发连接(特别是静态小文件业务环境)

2.      资源消耗少,在三万并发连接下,开启10nginx线程消耗的内存不到200M

3.      可以做http反向代理及加速缓存,即负载均衡的功能,内置对RS节点服务器健康检查功能,这相当于专业的Haproxy软件或LVS的功能

4.      具备squid等幻夜缓存软件的缓存功能

5.      支持异步网络IO事件模型epoll

epoll-->利用登录人员信息,快速找到人员信息

select-->管理人员,带着你一个一个去找                                               技术分享图片

1.3 nginx软件的主要应用:

1.      www服务

2.      反向代理或负载均衡

3.      前端业务数据缓存服务

1.4 nginx软件的编译安装:

1.      进入到指定目录下,下载安装包

cd  /server/tools

wget http://nginx.org/download/nginx-1.12.2.tar.gz

然后yum安装依赖软件:

[[email protected] nginx-1.12.2]# yum -y install pcre-devel   openssl-devel

2.      解压

[[email protected] tools]# tar xf nginx-1.12.2.tar.gz

[[email protected] tools]# ll

total 964

drwxr-xr-x 8 1001 1001   4096 Oct 17 21:16 nginx-1.12.2

-rw-r--r-- 1 root root 981687 Oct 17 21:20 nginx-1.12.2.tar.gz

[[email protected] tools]# cd nginx-1.12.

1.5 编译安装三部曲:

a.       配置参数

--prefix=path                    指定软件安装的路径

--user=www                    创建一个虚拟用户,管理nginx服务的worker进程

:这里系统中如果没有www用户的话要创建一个用户

--group=www                   创建一个虚拟用户组,管理nginx服务worker进程

--with-http_ssl_module            nginx服务可以支持https访问

--with-http_stub_status_module     便于监控软件监视nginx服务运行状态

[[email protected] nginx-1.12.2]# ./configure --prefix=/application/nginx-1.12.2 --user=www --group=www --with-http_ssl_module --with-http_stub_status_module

[[email protected] nginx-1.12.2]# echo $?

0

b.      编译---翻译

编译过程实质是将各种程序语言转换为系统可识别的二进制信息

[[email protected] nginx-1.12.2]# make

[[email protected] nginx-1.12.2]# echo  $?

c.       编译安装

[[email protected] nginx-1.12.2]# make install

d.      创建程序目录软链接文件

[[email protected] tools]# ln -s /application/nginx-1.12.2/ /application/nginx

[[email protected] tools]# ll /applicaion

total 4

lrwxrwxrwx 1 root root   26 Feb  2 10:54 nginx -> /application/nginx-1.12.2/

drwxr-xr-x 6 root root 4096 Feb  2 10:42 nginx-1.12.2

e.       启动nginx服务

[[email protected] application]# /application/nginx/sbin/nginx

[[email protected] application]# ps -ef |grep nginx

root      12740      1  0 10:55 ?        00:00:00 nginx: master process /application/nginx/sbin/nginx

www       12741  12740  0 10:55 ?        00:00:00 nginx: worker process       

root      12744  10122  0 10:56 pts/6    00:00:00 grep nginx

masternginx服务的主进程      worker进程为真正处理用户请求的进程

f.       检测安装是否成功:在浏览器上输入本地ip地址,查看是否可以访问即可

1.5.1 部署nginx软件可能会遇到的问题:

[[email protected] application]# /application/nginx/sbin/nginx –V     -V可以显示安装的参数信息

nginx version: nginx/1.12.2

built by gcc 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC)

built with OpenSSL 1.0.1e-fips 11 Feb 2013

TLS SNI support enabled

configure arguments: --prefix=/application/nginx-1.12.2 --user=www --group=www --with-http_ssl_module --with-http_stub_status_module

1.6 nginx软件目录结构

drwxr-xr-x 2 root root 4096 Feb  2 10:42 conf      配置文件目录

drwxr-xr-x 2 root root 4096 Feb  2 10:42 html      站点目录

drwxr-xr-x 2 root root 4096 Feb  2 10:55 logs      日志目录

drwxr-xr-x 2 root root 4096 Feb  2 10:42 sbin      保存服务命令目录

1.7 配置文件目录说明:

-rw-r--r-- 1 root root 3957 Feb  2 10:42 mime.types       媒体资源类型文件

-rw-r--r-- 1 root root 2656 Feb  2 10:42 nginx.conf        nginx服务主配置文件

1.8 精简主配置文件内容:

[[email protected] conf]# grep -Ev "#|^$" nginx.conf.default >nginx.conf

1.9 nginx配置文件区块分类:

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;    出现这些错误状态码时,使用50x.html回应客户

        location = /50x.html {                location区块开始,访问50x.html   

            root   html;                      指定对应的站点目录为

        }

    }

}

1.10 nginx命令参数:

  -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    重新加载配置文件

1.11    编写静态访问页面文件信息:

   <html>

   <meta charset="utf-8">

   <head>

   <title>老男孩教育43期最牛</title>

   </head>

   <body>

   老男孩教育43期最牛

   <table border=1>

   <tr> <td>01</td> <td> </td> </tr>

   <tr> <td>02</td> <td> </td> </tr>

   <tr> <td>03</td> <td> </td> </tr>

   </table>

   <a href="http://blog.oldboyedu.com">

   <img src="oldboy.jpg" />    图片的名字

   </a>

   </body>

   </html>

1.12 如何利用pid文件查看nginx服务是否开启?

nginx服务在启动后,/application/nginx/logs/目录中会自动生成一个pid文件,来记录nginx服务的进程号,所以利用这个文件可以判断nginx服务是否已经开启

[[email protected] application]# /application/nginx/sbin/nginx        启动nginx服务

[[email protected] application]# find / -type f -name "nginx.pid"    

/application/nginx-1.12.2/logs/nginx.pid

[[email protected] logs]# ll

total 12

-rw-r--r-- 1 root root 3017 Feb  2 12:47 access.log

-rw-r--r-- 1 root root 1714 Feb  3 23:27 error.log

-rw-r--r-- 1 root root    6 Feb  4 11:32 nginx.pid             nginx服务pid文件

[[email protected] logs]# kill 15623

[[email protected] logs]# kill 15623

-bash: kill: (15623) - No such process

[[email protected] logs]# ll                                          杀死进程后,pid文件即不存在

total 8

-rw-r--r-- 1 root root 3017 Feb  2 12:47 access.log

-rw-r--r-- 1 root root 1714 Feb  3 23:27 error.log


以上是关于Nginx的主要内容,如果未能解决你的问题,请参考以下文章

NginxNginx配置REWRITE隐藏index.php

NginxNginx配置文件解析

NginxNginx基础操作

NginxNginx基础操作

NginxNginx基础操作

NginxNginx基础操作