nginx服务配置

兑现WWW服务的常用web软件:nginx、apache。

nginx服务配置 表明,nginx服务配置

第1章 常用的软件

经文流行的web组合lamp(linux apache mysql php)、lnmp(linux nginx mysql
php)。

1.1 常用来提供静态服务的软件

新普京娱乐场 1 
Apache :那是中型迷你型Web服务的主流,Web服务器中的老大哥,

新普京娱乐场 2 
Nginx :大型网址Web服务的主流,曾经Web服务器中的初生牛犊,现已长成。

新普京娱乐场 3 
Nginx 的分支 Tengine (
http://tengine.taobao.org/)目前也在飞速发展•

新普京娱乐场 4 
Lighttpd :这是二个不溫不火的佳绩 Web软件,社区不活跃,静态分析效用极高.在 Nginx
流行前,它是大并发静态业务的首选,国内百度贴吧、豆瓣等好些个网站都有Lighttpd奋斗的身彩”  

Nginx自个儿是一款静态(html、js、css、jpg等)的www软件,无法剖判动态的PHP、JSP、DO。

1.2 常用来提供动态服务的软件

新普京娱乐场 5 
PHP ( 法斯特CGI
):大中型Mini型网址都会利用,动态网页语言PHP程序的深入分析容器。它可相当Apache分析动态程序,可是,这里的PHP不是法斯特CGI守护进度横式,而是mod_php5.so ( module)也可合营Nginx深入分析动态程序,此时的PHP常用法斯特CGI守护进度格局提供劳动。

新普京娱乐场 6 
汤姆cat :中型小型公司动态Web服务主流,网络Java容器主流(如jsp、do )

新普京娱乐场 7 
Resin :大型动态Web服务主流,互连网Java容器主流(如jsp、do )

新普京娱乐场 8 
IIS ( Internet information services
):微软 windows 下的
Web 服务软件(如 asp、aspx )

最大的特征:

第2章 nginx 软件

1、静态小文件(1M),援救高产出,同不经常候占用的资源比比较少。20000面世,11个进度,内部存款和储蓄器消耗150M。

2.1 软件介绍

若果你听他们讲或行使过
Apache软件,那么高效就能够纯熟Nginx软件,与 Apache软件临近, Nginx ( “engme
x”)是三个开源的,接济高品质、高并发的
WWW服务器和代办服务软件。它是由俄罗丝人 伊戈尔Sysoev开辟的,最初被采用在勘罗斯的巨型网址www.rambler.ru 上,后来小编将源代码以类BSD许可证的情势开源出来供中外应用。

Nginx因存有高并发(特别是静态能源)占用系统财富少等特点,且作用丰裕而日趋流行起来。

在成效利用发面,Nginx不不过叁个美好的Web服务软件,还具有反向代理负载均衡功用和缓存服务效用。在反向代理负载均衡效用方面,它相仿于盛名的LVS负载均衡及Haproxy等标准代理软件,然则Nginx铺排起来更为轻便、方便;在缓存服务职能方面,它又象是于Squid等标准的缓存服务软件。

Nginx 能够运作在
UNIX、Linux、BSD、Mac 0S X、Solaris,以及 Microsoft Windows
等操作系统中。随着Nginx在境内广大巨型网址中的牢固快速运作,近八年它也逐年被越多的中型Mini型网址所接纳。当前流行的Nginx Web组合被叫作LNMP或LEMP(即Linux Nginx MySQL PHP),当中 LNMP
里的 N 取自Nginx (
“engine x” )

Nginx 的合法介绍见 http://nginx.org/en

 

Nginx在windows、linux、unix都可以。

2.2 NGINX 软件性子

Nginx服务最大的功用:

2.2.1 HTTP服务器的风味及亮点:

u  援助高产出:能支撑几万并发连接(特别是静态小文件工作景况)

u  能源消耗少:在3万并发连接下,开启11个Nginx线程消耗的内部存款和储蓄器不到200MB

u  能够做HTTP反向代理及加快缓存、即负载均衡功用,内置对LX570S节点服务器健检效用,这一定张永琛规的Haproxy软件或LVS的功效。

u  具有Squid等规范缓存软件等的缓存作用。

u  扶助异步网络I/O事件横型epoll(Linux2.6+)

1、www web服务、邮件服务、邮件代理。

2.2.2 nginx功用特色

Ø  web网址服务

Ø  反向代理负载均衡(nginx /lvs /haproxy)

Ø  nginx缓存服务(memcache
/redis /mongodb)

2、负载均衡(反向代理proxy)。

2.3 nginx软件的市肆成效应用

业务类型

应用方案

静态业务

若是高并发场景,尽量采用Nginx或Lighttpd,二者首选Nginx

动态业务

理论上采用Nginx和Apache均可,建议选择Nginx,为了避免相同业务的服务软件多样化,增加额外维护成本。动态业务可以由Nginx兼做前端代理,再根据页面元素的类型或目录,转发到后端相应的服务器处理进程。

—首选tomcat

既有静态业务又有动态业务

采用Nginx

利用nginx软件是无法处理动态业务请求,要让nginx结合php软件处理动态业务请求,在加上mysql 即 LNMP架构

3、web cache(web缓存),squid(CDN首要接纳squid)。

2.4 nginx软件的动态访问瓶颈

Nginx特点:

2.4.1 与别的软件的相比较

先来探视Apache软件的风味,如下

²  Apache2.2版本特别安静庞大,据官方说,Apache2.4本子质量更加强。

²  Prefork形式撤销了经过成立开销,品质极高。

²  管理动态业务数据时,因涉嫌到后端的斯特林发动机和数据库,瓶颈不在Apache上。

²  高并发时消耗系统财富相对多一些。

²  基于古板的select模型,高并发手艺有限。

²  帮助扩充库,可由此DSO、apxs方法编写翻译安装额外的插件作用,没有需求再度编写翻译Apache

²  成效多,更地西泮,更安全,插件也多。

²  市镇份额在日趋递减

 

再来看看Nginx软件的特点,如下:

n  基于异步网结I/O模 型(epollk kqueue)

n  具有帮忙高品质,高并发的特色,并发连接可达数万。

n  对小文件(小于1
MB的静态文件)高并发协理很好,质量非常高

n  不支持类似 Apache的DSO情势、增加库必须编写翻译进主程序(劣势)

n  进程占用系统能源非常低。

n  支持Web、反向Proxy、Cache三大主要成效,幷且都很精美。

n  市集份额在逐步急忙扩大。

 

最后是Lighttpd的特点,如下:

²  基于异步网络 I/ O模型,质量、并发都与 Nginx周边。

²  扩充库是 SO方式,比Nginx灵活

²  前段时间境内的使用率十分低,安全性没有Apache和Nginx好。

²  通过插件(mod_secdownload)可完毕公文 UTiguanL地址加密(优点)

²  社区不活跃,市集份额比较低,

 

1、配置简单、灵活、轻量。

2.4.2 最根本的不同(select & epoll)

NGINX 使用的是epoll
和Kqueue 异步互联网I/O模型,而apache使用的是古板的select模型

比喻:

先是个比喻:

要是你在学院读书,住的宿舍楼有无数房子,你的相恋的人要来找你。select版宿管小姑就能够带着你的意中人到各房间挨个去找,直到找到您得了。而epoll版宿管二姨会先记下每位入住同学的房间号,你的爱侣来找你时,只需告诉你的情侣你住在哪个房间就能够,不用亲自带着您的相恋的人满宿舍楼找人了。借使同时来了一百位,都要找自身住那栋楼的同班,select版和epoll版宿管大姨,什么人的频率更高,就很引人瞩目了。

第二个比如:

select的调用复杂度是线性的,即O(n)。比方,三个保姆照顾照料一堆孩子,借使把男女是不是需求尿尿比作网络I/O事件,select的效益就好比这么些保姆挨个询问每一个孩子”你要尿尿吗?”假使子女回答是,保姆则把男女领出来放到别的一个地点。当全数子女领会完事后,保姆领着那一个要尿尿的儿女去上厕所(管理互联网I/O事件).在epoll机制下,保姆不再供给各类询问每一种孩子是还是不是需求尿尿。取而代之的是,要是子女急需尿尿,他就融洽主动站到先行约定好的地点,而保姆的职责就是翻开事先约定好的地方是否有子女。如若有娃娃,则领着儿女去上洗手间(网络事件管理)。由此,epoll的这种体制,能够非常的慢地拍卖看不完的产出连接,况且品质不会随着连接数増加而收缩太多。

2、高并发(静态小文件),静态几万的出现。

2.4.3 apache select和nginx epoll手艺相比较图

指标

select

epoll

性能

随着连接数的增加性能急剧下降。处理成千上万的并发连接数,性能很差

随着连接数的增加,性能基本上没有下降。处理成千上万连接时性能很好

连接数

连接数有限制,处理的最大连接数不超过1024,如果要处理的连接数超过1024个,则需要修改FD_SETSIZE宏,并重新编译

连接数无限制

内在处理机制

线性轮询

回调callback

开发复杂性

3、占用财富少。

第3章 nginx的安装与行使

4、功效连串非常多(web、cache、proxy),每一效果都不是特意强。

3.1 nginx软件的编写翻译安装步骤

5、扶助epoll模型。使得nginx可以支撑高产出。apache使用select模型。

3.1.1 检查软件安装的系统碰着

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

CentOS release 6.9 (Final)

[[email protected]
~]# uname -r

2.6.32-696.el6.x86_64

6、nginx能够合作动态PHP服务(fastcgi接口)。

3.1.2 安装nginx的借助包(pcre-devel openssl-devel)

yum install -y pcre-devel openssl-devel

pcre:包容perl语言正则表明式,perl
compatible regular expressions

      rewirte模块 参数音信(perl情势定义正则表明式)

openssl:ssh—openssh/openssl—https

小结:全部安装重视软件,后边都要丰硕-devel

7、利用nginx能够对IP限制速度,可限制连接数。

3.1.3 下载nginx软件

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

表明:软件十分的小,用心查看一下

解压软件

tar xf nginx-1.10.2.tar.gz

Nginx的运用场所

3.1.4 创造管理用户 www

useradd -M -s /sbin/nologin www

 

1、提供静态服务(图片、视频服务),另四个lighttpd。几万油但是生。

3.1.5  nginx软件编译安装进度

2、提供动态服务,nginx+fastcgi的法门运营PHP、JSP。动态出现500-1500。(apache+php、lighttpd+fastcgi
php)

3.1.5.1  注意

软件编写翻译安装步骤

a>软件解压配置(将软件程序安装到哪些目录中
开启nginx软件的怎样职能)

b>软件编译进程

c>软件编写翻译安装进程

   注意顺序,顺序不对软件设置会出错

3、反向代理、负载均衡。日PV3000万之下,都能够一直用nginx做反向代理。(haproxy、F5、A10)

3.1.5.2  编写翻译安装软件

1、配置软件,在软件的解压目录中

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

编写翻译参数表明:

–prefix      
    表示内定软件安装到哪个目录中,钦定目录不设有会自动创立

–user/–group
      nginx专门的学问经过由哪个用户运营管理

–with-http_stub_status_module   运行nginx状态模块效用(用户访谈nginx的互连网音信)

–with-http_ssl_module           运转https功效模块

透过软件编写翻译进度中的重返值是不是科学,确认配置是或不是科学

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

0

   2、编写翻译软件

[[email protected]
nginx-1.10.2]# make

   3、编写翻译安装

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

4、缓存服务。类似squid、varnish、ats。

3.1.6 创设软连接

[[email protected]
application]# ln -s /application/nginx-1.10.2/
/application/nginx

nginx帮衬设想主机

3.1.7 精简化nginx.conf 主配置文件内容

[[email protected]
conf]# egrep -v “#|^$” nginx.conf.default >nginx.conf

三个server标签段正是三个虚构主机。

3.1.8 运维程序

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

[[email protected]
application]#

检查是还是不是运维

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

root      26548      1  0 20:13 ?        00:00:00
nginx: master process /application/nginx/sbin/nginx

www       26549  26548  0 20:13 ?        00:00:00
nginx: worker process       

root      26551  23431  3 20:13 pts/0    00:00:00
grep –color=auto nginx

自笔者争持端口消息

[[email protected]
application]# netstat -lntup |grep 80

tcp        0      0 0.0.0.0:80                 
0.0.0.0:*                   LISTEN      26548/nginx 

劳动配置变成

 

于今软件设置收尾!

nginx命令简化方法

echo ‘export
PATH=/application/nginx/sbin:$PATH’>>/etc/profile

source /etc/profile

which nginx

1、基于域名的设想主机。通过域名来分别设想主机。应用:外界网址。

3.1 nginx 目录结构

[[email protected]
nginx]# ll

total 36

drwxr-xr-x 2 root root 4096 Oct 21 19:34 conf   
#陈设文件保留目录

drwxr-xr-x 2 root root 4096 Oct 21 19:34 html   
#站点目录

drwxr-xr-x 2 root root 4096 Oct 21 20:26 logs   
#nginx 服务相关日志文件保留目录(错误日志访谈日志)

drwxr-xr-x 2 root root 4096 Oct 21 19:34 sbin   
# 服务命令目录(独有贰个nginx文件)

2、基于端口的设想主机。通过端口来分化虚构主机。应用:公式内部网站,网址后台。

3.2 nginx.conf 配置文件申明

如此那般的配备文件是通过精简化配置文件获得!

[[email protected]
conf]# cat nginx.conf

worker_processes  1;                        ←
worker 进程数量

events {                     
              ←事件区块

    worker_connections  1024;             
 ←每一个worker进度能够拍卖的连接数

}                                         
  ←事件区块截止

http {                                      ←
HTTP 区块

    include       mime.types;            
  ←援救的媒体文件

    default_type 
application/octet-stream;←默许的传播媒介类型

    sendfile        on;                    
←高效传输形式

    keepalive_timeout  65;                 
←超时时间

    server {                                 ←
server 区块

        listen       80;                  
 ←端口

        server_name  localhost;            
←域名

        location / {                    
   ←第一个location区块

            root   html;                   
 ←站点目录

            index  index.html index.htm;  
  ←首页文件

        }                                  
 ←第一个location区块结束

        error_page   500 502 503 504  /50x.html; 
← 错误音信配置

        location = /50x.html {                 
文件地方

            root   html;                     
在哪找:路径

        }                                     

    }            
                            ← server
区块结束

}                                            ←
HTTP 区块结束

3、基于IP的设想主机。大致不用。不协助ifconfig别称,配置文件能够。

3.2.1 站点目录与首页文件概念

 

Nginx安装

安装PCRE

Pcre全称(Perl Compatible Regular
Expressions),粤语perl包容正则表明式。

  1. [root@lnmp ~]# cat
    /etc/redhat-release

  2. CentOS release 6.6 (Final)

  3. [root@lnmp ~]# uname -r

  4. 2.6.32-504.el6.x86_64

  5. [root@lnmp ~]# uname -m

  6. x86_64

  7. [root@lnmp ~]# rpm -qa pcre
    pcre-devel

  8. pcre-7.8-6.el6.x86_64

  9. [root@lnmp ~]# yum install pcre
    pcre-devel -y

  10. [root@lnmp ~]# rpm -qa pcre
    pcre-devel

  11. pcre-7.8-7.el6.x86_64

  12. pcre-devel-7.8-7.el6.x86_64

安装OpenSSL

  1. [root@lnmp ~]# rpm -qa openssl
    openssl-devel

  2. openssl-1.0.1e-30.el6.x86_64

  3. [root@lnmp ~]# yum install
    openssl-devel -y

  4. [root@lnmp ~]# rpm -qa openssl
    openssl-devel

  5. openssl-devel-1.0.1e-48.el6_8.3.x86_64

  1. openssl-1.0.1e-48.el6_8.3.x86_64

安装nginx

  1. [root@lnmp nginx-1.6.3]# useradd
    nginx -s /sbin/nologin -M

  2. [root@lnmp nginx-1.6.3]# id nginx

  1. uid=503(nginx) gid=503(nginx)
    groups=503(nginx)

  2. [root@lnmp ~]# cd
    /home/oldboy/tools/

  3. [root@lnmp tools]# wget -q
    http://nginx.org/download/nginx-1.6.3.tar.gz

  1. [root@lnmp tools]# ls
    nginx-1.6.3.tar.gz -lk

  2. -rw-r–r–. 1 root root 787 Apr 8 2015
    nginx-1.6.3.tar.gz

  3. [root@lnmp tools]# tar xf
    nginx-1.6.3.tar.gz

  4. [root@lnmp tools]# cd nginx-1.6.3

  1. [root@lnmp nginx-1.6.3]# ll

  2. total 624

  3. drwxr-xr-x. 6 1001 1001 4096 Feb 16
    02:42 auto

  4. -rw-r–r–. 1 1001 1001 236608 Apr 7
    2015 CHANGES

  5. -rw-r–r–. 1 1001 1001 360501 Apr 7
    2015 CHANGES.ru

  6. drwxr-xr-x. 2 1001 1001 4096 Feb 16
    02:42 conf

  7. -rwxr-xr-x. 1 1001 1001 2369 Apr 7 2015
    configure

  8. drwxr-xr-x. 4 1001 1001 4096 Feb 16
    02:42 contrib

  9. drwxr-xr-x. 2 1001 1001 4096 Feb 16
    02:42 html

  10. -rw-r–r–. 1 1001 1001 1397 Apr 7 2015
    LICENSE

  11. drwxr-xr-x. 2 1001 1001 4096 Feb 16
    02:42 man

  12. -rw-r–r–. 1 1001 1001 49 Apr 7 2015
    README

  13. drwxr-xr-x. 8 1001 1001 4096 Feb 16
    02:42 src

  14. [root@lnmp nginx-1.6.3]# tree|wc -l

  1. 404

  2. [root@lnmp nginx-1.6.3]# ./configure
    –prefix=/application/nginx-1.6.3 –user=nginx –group=nginx
    –with-http_stub_status_module

  3. [root@lnmp nginx-1.6.3]# echo $?

  1. 0

  2. [root@lnmp nginx-1.6.3]# make &&
    make install

  3. [root@lnmp nginx-1.6.3]# cd ..

  1. [root@lnmp tools]# ll
    /application/nginx-1.6.3/ -ld

  2. drwxr-xr-x. 6 root root 4096 Feb 16
    02:50 /application/nginx-1.6.3/

  3. [root@lnmp tools]# ln -s
    /application/nginx-1.6.3/ /application/nginx

  4. [root@lnmp tools]# ls -l
    /application/

  5. total 4

  6. lrwxrwxrwx. 1 root root 25 Feb 16 02:53
    nginx -> /application/nginx-1.6.3/

  7. drwxr-xr-x. 6 root root 4096 Feb 16
    02:50 nginx-1.6.3

启动nginx

  1. [root@lnmp tools]#
    /application/nginx/sbin/nginx

  2. [root@lnmp tools]# ps -ef|grep
    nginx|grep -v grep

  3. root 1362 1231 0 01:44 pts/0 00:00:00
    wget -q http://nginx.org/download/nginx-1.6.3.tar.gz

  1. root 1364 1231 0 01:46 pts/0 00:00:00
    wget -q http://nginx.org/download/nginx-1.6.3.tar.gz
  1. root 3853 1 0 02:59 ? 00:00:00 nginx:
    master process /application/nginx/sbin/nginx

  2. nginx 3854 3853 0 02:59 ? 00:00:00
    nginx: worker process

  3. [root@lnmp tools]# ss -lntup|grep
    nginx

  4. tcp LISTEN 0 128 *:80 *:*
    users:((“nginx”,3853,6),(“nginx”,3854,6))

  5. [root@lnmp tools]# curl 127.0.0.1

  1. <!DOCTYPE html>

  2. <html>

  3. <head>

  4. <title>Welcome to
    nginx!</title>

  5. <style>

  6.     body {

  7.         width: 35em;

  8.         margin: 0 auto;

  9.         font-family: Tahoma, Verdana,
    Arial, sans-serif;

  10.     }

  11. </style>

  12. </head>

  13. <body>

  14. <h1>Welcome to nginx!</h1>

  1. <p>If you see this page, the nginx web server is successfully installed and

  2. working. Further configuration is required.</p>

  3.  

  4. <p>For online documentation and
    support please refer to

  5. <a href=”http://nginx.org/"&gt;nginx.org&lt;/a&gt;.&lt;br/&gt;

  1. Commercial support is available at

  2. <a href=”http://nginx.com/"&gt;nginx.com&lt;/a&gt;.&lt;/p&gt;

  1.  

  2. <p><em>Thank you for using nginx.</em></p>

  3. </body>

  4. </html>

浏览器访谈

新普京娱乐场 9

  1. [root@lnmp nginx]# ls -l|grep -v
    temp

  2. total 36

  3. drwxr-xr-x. 2 root root 4096 Feb 16
    02:50 conf #配置

  4. drwxr-xr-x. 2 root root 4096 Feb 16
    02:50 html #暗许网址目录

  5. drwxr-xr-x. 2 root root 4096 Feb 16
    02:59 logs #错误,访谈日志

  6. drwxr-xr-x. 2 root root 4096 Feb 16
    02:50 sbin #起初命令

3.2.2 配置文件详解

 

布署站点

新建一个index2.html。

  1. [root@lnmp html]# cat index2.html
  1. <html>

  2. <head><title>Golden,s Nginx
    server blog.</title></head>

  3. <body>

  4. Hi,I am golden.My blog address is

  5. <a href=”http://www.cnblogs.com/yinshoucheng-golden"&gt;http://www.cnblogs.com/yinshoucheng-golden&lt;/a&gt;

  1. </body>

  2. </html>

浏览器访问:http://192.168.31.134/index2.html

新普京娱乐场 10

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:U凯雷德L地址重写模块。

ngx_http_limit_conn_module:限制用户并发连接数及央求数模块。

ngx_http_limit_req_module:限制Nginx request processing
rate依据定义的key。

ngx_http_log_module:访谈日志模块,以钦命的格式记录nginx客户拜候日志等音信。

ngx_http_anth_basic_module:web认证模块,设置web用户通过账号密码访谈nginx。

ngx_http_ssl_module:ssl模块,用于加密的http连接,如https。

ngx_http_stub_status_module:记录nginx基本访谈状态消息等的模块。

3.3 【常见错误】nginx软件的编译安装常见错误表达

nginx.conf

  1. [root@lnmp conf]# cat nginx.conf
  1.  

  2. #user nobody;

  3. worker_processes 1; # 4 –
    10行main区,nginx焦点功效模块

  4.  

  5. #error_log logs/error.log;

  6. #error_log logs/error.log notice;

  1. #error_log logs/error.log info;
  1.  

  2. #pid logs/nginx.pid;

  3.  

  4.  

  5. events { # 13 – 15 行
    events区,nginx核心效用模块

  6.     worker_connections 1024;

  7. }

  8.  

  9.  

  10. http { # http区,nginx http焦点模块

  1.     include mime.types;

  2.     default_type
    application/octet-stream;

  3.  

  4.     #log_format main ‘$remote_addr –
    $remote_user [$time_local] “$request” ‘

  5.     # ‘$status $body_bytes_sent
    “$http_referer” ‘

  6.     # ‘”$http_user_agent” “$http_x_forwarded_for”‘;

  7.  

  8.     #access_log logs/access.log main;

  1.  

  2.     sendfile on;

  3.     #tcp_nopush on;

  4.  

  5.     #keepalive_timeout 0;

  6.     keepalive_timeout 65;

  7.  

  8.     #gzip on;

  9.  

  10.     server { # server标签

  11.         listen 80; # 端口

  12.         server_name localhost; # 域名

  1.  

  2.         #charset koi8-r;

  3.  

  4.         #access_log
    logs/host.access.log main;

  5.  

  6.         location / { # 依照uri进行跳转

  1.             root html;

  2.             index index.html index.htm;
    # 首页

  3.         }

  4.  

  5.         #error_page 404 /404.html;

  1.  

  2.         # redirect server error pages
    to the static page /50x.html

  1.         #

  2.         error_page 500 502 503 504
    /50x.html;

  3.         location = /50x.html {

  4.             root html;

  5.         }

  6.  

  7.         # proxy the PHP scripts to
    Apache listening on 127.0.0.1:80

  8.         #

  9.         #location ~ \.php$ {

  10.         # proxy_pass http://127.0.0.1;

  11.         #}

  12.  

  13.         # pass the PHP scripts to
    FastCGI server listening on 127.0.0.1:9000

  14.         #

  15.         #location ~ \.php$ {

  16.         # root html;

  17.         # fastcgi_pass
    127.0.0.1:9000;

  18.         # fastcgi_index index.php;

  1.         # fastcgi_param
    SCRIPT_FILENAME /scripts$fastcgi_script_name;

  2.         # include fastcgi_params;

  1.         #}

  2.  

  3.         # deny access to .htaccess
    files, if Apache’s document root

  1.         # concurs with nginx’s one
  1.         #

  2.         #location ~ /\.ht {

  3.         # deny all;

  4.         #}

  5.     }

  6.  

  7.  

  8.     # another virtual host using mix of IP-, name-, and port-based
    configuration

  9.     #

  10.     #server {

  11.     # listen 8000;

  12.     # listen somename:8080;

  13.     # server_name somename alias
    another.alias;

  14.  

  15.     # location / {

  16.     # root html;

  17.     # index index.html index.htm;

  1.     # }

  2.     #}

  3.  

  4.  

  5.     # HTTPS server

  6.     #

  7.     #server {

  8.     # listen 443 ssl;

  9.     # server_name localhost;

  10.  

  11.     # ssl_certificate cert.pem;

  1.     # ssl_certificate_key cert.key;
  1.  

  2.     # ssl_session_cache
    shared:SSL:1m;

  3.     # ssl_session_timeout 5m;

  1.  

  2.     # ssl_ciphers HIGH:!aNULL:!MD5;

  1.     # ssl_prefer_server_ciphers
    on;

  2.  

  3.     # location / {

  4.     # root html;

  5.     # index index.html index.htm;

  1.     # }

  2.     #}

  3.  

  4. }

 

  1. [root@lnmp conf]# egrep -v “#|^$” nginx.conf.default

  2. worker_processes 1;

  3. events {

  4.     worker_connections 1024;

  5. }

  6. http {

  7.     include mime.types;

  8.     default_type
    application/octet-stream;

  9.     sendfile on;

  10.     keepalive_timeout 65;

  11.     server {

  12.         listen 80;

  13.         server_name localhost;

  14.         location / {

  15.             root html;

  16.             index index.html index.htm;

  1.         }

  2.         error_page 500 502 503 504
    /50x.html; #出现对应的http状态码使用50x.html回应

  3.         location = /50x.html {
    #location区块开始,访谈50x.html

  4.             root html;
    #钦命相应的站点目录为html

  5.         }

  6.     }

  7. }

  8. [root@lnmp conf]# egrep -v “#|^$” nginx.conf.default >nginx.conf

3.3.1 nginx软件设置进程中遇到的主题素材

软件看重包未正确安装难题—PCRE注重包未有设置

./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.

缓慢解决情势:yum install pcre pcre-devel -y

软件正视包未精确安装难题—OPENSSL重视包未有设置

./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.

杀鸡取蛋办法:yum install openssl openssl-devel -y

搭建基于域名的设想主机

  1. [root@lnmp conf]# cat nginx.conf
  1. worker_processes 1; #worker进度的数据
  1. events { #事件区块早先

  2.     worker_connections 1024;
    #各样worker进程扶助的最辛辛那提接数

  3. } #事件区块开首

  4. http { #http区块开首

  5.     include mime.types;
    #nginx协理的媒体类型库文件包涵

  6.     default_type
    application/octet-stream; #暗许的媒体类型

  7.     sendfile on; #展开高效传输格局

  1.     keepalive_timeout 65; #连接超时
  1.     server {
    #第贰个server区块初步,表示一个独自的设想主机站点

  2.         listen 80;
    #提供劳务的端口,私下认可80

  3.         server_name
    www.etiantian.org;
    #提供服务的域名主机名

  4.         location / {
    #率先个location区块早先

  5.             root html/www;
    #站点的根目录,相对于nginx安转目录

  6.             index index.html index.htm;
    #暗中认可的首页文件,多个用空格分开

  7.         } #首先个localtion区块结果

  1.     }

  2.     server {

  3.         listen 80;

  4.         server_name bbs.etiantian.org;

  1.         location / {

  2.             root html/bbs;

  3.             index index.html index.htm;

  1.         }

  2.     }

  3.  

  4. }

 

  1. [root@lnmp conf]# mkdir
    ../html/{www,bbs} -p

  2. [root@lnmp conf]# tree ../html/

  1. ../html/

  2. ├── 50x.html

  3. ├── bbs

  4. ├── index2.html

  5. ├── index.html

  6. └── www

  7. [root@lnmp conf]# echo “www.etiantian.org” >../html/www/index.html

  1. [root@lnmp conf]# echo “bbs.etiantian.org” >../html/bbs/index.html
  1. [root@lnmp conf]# cat
    ../html/{www,bbs}/index.html

  2. www.etiantian.org

  3. bbs.etiantian.org

  4. [root@lnmp conf]#
    /application/nginx/sbin/nginx -t #检查语法

  5. nginx: the configuration file
    /application/nginx-1.6.3/conf/nginx.conf syntax is ok

  6. nginx: configuration file
    /application/nginx-1.6.3/conf/nginx.conf test is successful

  7. [root@lnmp conf]#
    /application/nginx/sbin/nginx -s reload #重启

  8. [root@lnmp conf]# cat /etc/hosts

  1. 127.0.0.1 localhost
    localhost.localdomain localhost4 localhost4.localdomain4

  2. ::1 localhost localhost.localdomain
    localhost6 localhost6.localdomain6

  3.  

  4. 192.168.31.132 server

  5. 192.168.31.133 lamp

  6. 192.168.31.134 lnmp www.etiantian.org
    bbs.etiantian.org

  7. 192.168.31.136 backup

  8.  

  9. [root@lnmp conf]# ping
    www.etiantian.org

  10. PING lnmp (192.168.31.134) 56(84) bytes
    of data.

  11. 64 bytes from lnmp (192.168.31.134):
    icmp_seq=1 ttl=64 time=0.084 ms

  12. 64 bytes from lnmp (192.168.31.134):
    icmp_seq=2 ttl=64 time=0.050 ms

  13. ^Z

  14. [5]+ Stopped ping www.etiantian.org

  1. [root@lnmp conf]# ping
    bbs.etiantian.org

  2. PING lnmp (192.168.31.134) 56(84) bytes
    of data.

  3. 64 bytes from lnmp (192.168.31.134):
    icmp_seq=1 ttl=64 time=0.034 ms

  4. 64 bytes from lnmp (192.168.31.134):
    icmp_seq=2 ttl=64 time=0.050 ms

  5. ^Z

  6. [6]+ Stopped ping bbs.etiantian.org

  1. [root@lnmp conf]# curl
    www.etiantian.org

  2. www.etiantian.org

  3. [root@lnmp conf]# curl
    bbs.etiantian.org

  4. bbs.etiantian.org

通过浏览器访问须求修改windows
hosts文件(C:\Windows\System32\drivers\etc),加入192.168.31.134
www.etiantian.org bbs.etiantian.org。

基于域名的设想主机配置步骤

1、修改配置文件nginx.conf。

2、创制站点目录

3、检查语法,重新加载nginx。

4、配置hosts,测试。

3.3.2 nginx软件运维进度中遇见的标题

nginx软件重复运营产生的错误消息

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

nginx: [emerg] bind() to 0.0.0.0:80 failed (98:
Address already in use)

nginx: [emerg] bind() to 0.0.0.0:80 failed (98:
Address already in use)

nginx: [emerg] bind() to 0.0.0.0:80 failed (98:
Address already in use)

nginx: [emerg] bind() to 0.0.0.0:80 failed (98:
Address already in use)

nginx: [emerg] bind() to 0.0.0.0:80 failed (98:
Address already in use)

nginx: [emerg] still could not bind()

减轻方式:

nginx软件已经起步没有需求每每运维,要是急需再度开动需求结束nginx进度或许用reload格局开始展览重启

基于端口的虚构主机

  1. [root@lnmp conf]# cat nginx.conf
  1. worker_processes 1;

  2. events {

  3.     worker_connections 1024;

  4. }

  5. http {

  6.     include mime.types;

  7.     default_type
    application/octet-stream;

  8.     sendfile on;

  9.     keepalive_timeout 65;

  10.     server {

  11.         listen 8001;

  12.         server_name www.etiantian.org;

  1.         location / {

  2.             root html/www;

  3.             index index.html index.htm;

  1.         }

  2.     }

  3.     server {

  4.         listen 8002;

  5.         server_name www.etiantian.org;

  1.         location / {

  2.             root html/bbs;

  3.             index index.html index.htm;

  1.         }

  2.     }

  3.    server {

  4.         listen 8003;

  5.         server_name www.etiantian.org;

  1.         location / {

  2.             root html/blog;

  3.             index index.html index.htm;

  1.         }

  2.     }

  3.  

  4. }

 

  1. [root@lnmp conf]#
    /application/nginx/sbin/nginx -t

  2. nginx: the configuration file
    /application/nginx-1.6.3/conf/nginx.conf syntax is ok

  3. nginx: configuration file
    /application/nginx-1.6.3/conf/nginx.conf test is successful

  4. [root@lnmp conf]#
    /application/nginx/sbin/nginx -s reload

  5. [root@lnmp conf]# netstat
    -lntup|grep nginx

  6. tcp 0 0 0.0.0.0:8001 0.0.0.0:* LISTEN
    3853/nginx

  7. tcp 0 0 0.0.0.0:8002 0.0.0.0:* LISTEN
    3853/nginx

  8. tcp 0 0 0.0.0.0:8003 0.0.0.0:* LISTEN
    3853/nginx

  9. [root@lnmp conf]# curl http://www.etiantian.org:8001

  10. www.etiantian.org

  11. [root@lnmp conf]# curl http://www.etiantian.org:8002

  12. bbs.etiantian.org

  13. [root@lnmp conf]# curl http://www.etiantian.org:8003

  14. blog.etiantian.org

3.3.3 运营 Nginx 时如下报错”nginx:[emerg]getpwnam(“nginx”〉failed”

解答那是因为从没对号入座的Nginx服务用户,施行useradd nginx-s/sbin/no丨ogin-M创设 Nginx

用户就能够。为了让读者知道难点,重现上述失实进程,命令如下:

[[email protected]
tools]# pkill nginx

[[email protected]
tools]# userdel nginx

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

nginx: [emerg] getpwnam(Mnginx”) failed

[[email protected]
tools]# useradd nginx -s /sbin/nologin -M

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

 

基于IP的虚构主机

  1. [root@lnmp conf]# ip addr add
    192.168.31.135/24 dev eth0

  2. [root@lnmp conf]# ip addr

  3. 1: lo: <LOOPBACK,UP,LOWER_UP>
    mtu 65536 qdisc noqueue state UNKNOWN

  4.     link/loopback 00:00:00:00:00:00 brd
    00:00:00:00:00:00

  5.     inet 127.0.0.1/8 scope host lo

  1.     inet6 ::1/128 scope host

  2.        valid_lft forever
    preferred_lft forever

  3. 2: eth0:
    <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast
    state UP qlen 1000

  4.     link/ether 00:0c:29:03:06:08 brd
    ff:ff:ff:ff:ff:ff

  5.     inet 192.168.31.134/24 brd
    192.168.31.255 scope global eth0

  6.     inet 192.168.31.135/24 scope global
    secondary eth0

  7.     inet6 fe80::20c:29ff:fe03:608/64
    scope link

  8.        valid_lft forever
    preferred_lft forever

  9. [root@lnmp conf]# cat nginx.conf

  1. worker_processes 1;

  2. events {

  3.     worker_connections 1024;

  4. }

  5. http {

  6.     include mime.types;

  7.     default_type
    application/octet-stream;

  8.     sendfile on;

  9.     keepalive_timeout 65;

  10.     server {

  11.         listen 192.168.31.134:80;

  1.         server_name www.etiantian.org;
  1.         location / {

  2.             root html/www;

  3.             index index.html index.htm;

  1.         }

  2.     }

  3.     server {

  4.         listen 192.168.31.135:80;

  1.         server_name www.etiantian.org;
  1.         location / {

  2.             root html/bbs;

  3.             index index.html index.htm;

  1.         }

  2.     }

  3. }

  4. [root@lnmp conf]#
    /application/nginx/sbin/nginx -t

  5. nginx: the configuration file
    /application/nginx-1.6.3/conf/nginx.conf syntax is ok

  6. nginx: configuration file
    /application/nginx-1.6.3/conf/nginx.conf test is successful

  7. [root@lnmp conf]#
    /application/nginx/sbin/nginx -s reload

  8. [root@lnmp conf]# curl
    192.168.31.134

  9. www.etiantian.org

  10. [root@lnmp conf]# curl
    192.168.31.135

  11. bbs.etiantian.org

除去增加的IP

  1. [root@lnmp conf]# ip addr del
    192.168.31.135/24 dev eth0

  2. [root@lnmp conf]# ip addr

  3. 1: lo: <LOOPBACK,UP,LOWER_UP>
    mtu 65536 qdisc noqueue state UNKNOWN

  4.     link/loopback 00:00:00:00:00:00 brd
    00:00:00:00:00:00

  5.     inet 127.0.0.1/8 scope host lo

  1.     inet6 ::1/128 scope host

  2.        valid_lft forever
    preferred_lft forever

  3. 2: eth0:
    <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast
    state UP qlen 1000

  4.     link/ether 00:0c:29:03:06:08 brd
    ff:ff:ff:ff:ff:ff

  5.     inet 192.168.31.134/24 brd
    192.168.31.255 scope global eth0

  6.     inet6 fe80::20c:29ff:fe03:608/64
    scope link

  7.        valid_lft forever
    preferred_lft forever

     

3.3.4 编译安装pcre编写翻译软件时,gcc不全导致报错(本文使用yum安装不设有此主题素材)。

报错新闻如下:

[[email protected]
pcre-8.30]# make && make install

make all-am

make[l] : Entering directory
7home/gjlin/tools/pcre-8.30′

CXX pcrecpp.lo

libtool : compile : unrecognized option
‘-DHAVE_CONFIG_H’

libtool : compile : Try ‘libtool –help* for more
information.

make[l】:***
[pcrecpp.lo】错误 1

make[l] : Leaving directory
Vhome/gjlin/tools/pcre-8.30′

make : *** [all]错误
2

解答:实施“yum -y install
gcc-c++”命令安装gcc-c++依赖包。

3.3.5 nginx软件编译安装后,看不到程序目录(/application)

   表达:编写翻译安装步骤不对(配置 编译编写翻译安装生成/appliation)

3.3.6 nginx软件排查难点三部曲表明

       a 在客户端上ping服务器端IP,检查链路是还是不是通畅

      b 在客户端上telnet服务器端IP、端口,检查链路寻访是还是不是通畅

      c 在客户端上wget检查评定模拟页面访谈是或不是不荒谬

3.3.7 【注意】403状态码现身气象原因

    01. 劳务阻止客户端访谈

    02.
服务端站点目录中,没有点名首页文件音讯   

3.4 nginx软件使用命令参数

3.4.1 nginx 运营方法

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

3.4.2 nginx 结束方法

[[email protected]
application]# /application/nginx/sbin/nginx -s stop

3.4.3 nginx 重启方法 (平滑重启)

[[email protected]
application]# /application/nginx/sbin/nginx -s reload

3.4.4 检查安顿文件语法是或不是科学

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

nginx: the configuration file
/application/nginx-1.10.2/conf/nginx.conf syntax is ok

nginx: configuration file
/application/nginx-1.10.2/conf/nginx.conf test is successful

3.4.5 突显配置参数  -V (大写V)

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

nginx version: nginx/1.10.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.10.2 –user=www –group=www
–with-http_stub_status_module –with-http_ssl_module

3.4.6 nginx软件使用进度中深远表达

①. nginx软件语法检查方式:

    nginx -t 

②. nginx软件访谈测量试验进度:

curl -v www.baidu.com

③. nginx软件编写翻译参数查看:

    nginx -V                 <—
查看原有的编写翻译参数音信

3.5 nginx软件静态页面编写过程

编排配置文件

[[email protected]
www]# cat ../../conf/nginx.conf

worker_processes  1;

events {

    worker_connections  1024;

}

http {

    include       mime.types;

    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    server {

        listen       80;

        server_name www.zinx.top;

        location / {

            root   html/www;

            index  oldboy.html index.html
index.htm;

        }

        error_page   500 502 503 504 
/50x.html;

        location = /50x.html {

            root   html;

        }

    }

}

编纂静态访问页面文件消息

[[email protected]
www]# cat oldboy.html  

<html>

<meta charset=”utf-8″>

<head>

<title>TEST</title>

</head>

<body>

惨绿少年

<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.znix.top"&gt;

<img src=”znix.png” />

</a>

</body>

</html>

第4章 nginx进级 –虚构主机配置

4.1 【公司要求】需求依照原先nginx服务编写翻译安装进度设置

1、参看已安装服务的安排参数音信

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

nginx version: nginx/1.10.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.10.2 –user=www –group=www
–with-http_stub_status_module –with-http_ssl_module

   -V 参数能呈现软件的详尽详细,安装配备参数

2、遵照布署参数举办安插

4.1.1 【语法检查】检查布置文件

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

nginx: the configuration file
/application/nginx-1.10.2/conf/nginx.conf syntax is ok

nginx: configuration file
/application/nginx-1.10.2/conf/nginx.conf test is successful

4.2 首页文件不设有–利用nginx服务搭建文件共享服务器

因此安排  autoindex on;
参数

行使 autoindex参数,nginx能识别的直接展现,不识其他直白下载

配置完 autoindex on; 参数现在会显示站点下的文本音讯

对于nginx能够剖判的能源会深入分析相应的剧情

对此nginx不得以深入分析的财富会直接下载

4.2.1 进行curl时,报403不当,因为尚未首页文件音讯

 [[email protected]
~]# echo ‘web01 www’ >
/application/nginx/html/www/index.html

        <-
在虚构主机钦赐的站点目录中开创首页文件       
 

[[email protected]
~]# curl www.etiantian.org 

<- 利用curl命令本地检查实验nginx配置是不是成功;已经存在首页文件,测量检验成功

4.2.2 autoindex on参数实行

1)修改配置文件

[[email protected]
www]# cat ../../conf/nginx.conf

worker_processes  1;

events {

    worker_connections  1024;

}

http {

    include       mime.types;

    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    server {

        listen       10.0.0.8:80;

        server_name  www.etiantian.org;

        location / {

            root   html/www;

            autoindex on;

        }

        error_page   500 502 503 504 
/50x.html;

        location = /50x.html {

            root   html;

        }

    }

}

2)重启服务

[[email protected]
conf]# /application/nginx/sbin/nginx -t

nginx: the configuration file
/application/nginx-1.10.2/conf/nginx.conf syntax is ok

nginx: configuration file
/application/nginx-1.10.2/conf/nginx.conf test is successful

[[email protected]
conf]# /application/nginx/sbin/nginx -s reload

3)访谈测验

 

4.3 【概念】设想主机的概念和类别

设想主机使用的是非常的软硬件本事,它把一台运转在因特互连网的服务器主机分成一台台“虚构”的主机,每台虚构主机都足以是一个单独的网址,能够具备独立的域名,具备完全的Intemet服务器功能(WWW、FTP、Email等),同一台主机上的设想主机之间是一心独立的。从网址访问者来看,每一台虚构主机和一台独立的主机完全同样。

选择设想主机,不用为每一个要运维的网站提供一台单独的Nginx服务器或独立运维一组Nginx进度。虚构主机提供了在平等台服务器、同一组Nginx进程上运维三个网址的功用。

 

4.3.1 设想主机概念

所谓设想主机,在Web服务里便是二个独立的网址站点,这一个站点对应单独的域名(也可能是ip或端口.具备独立的程序及能源目录,能够独立地对外提供劳动供用户访谈。

以此独自的站点在配置里是由自然格式的标签段标记的,对于Apache软件来讲,一个设想主机的标签段平日被含有在以的此<VirtualHost></VirtualHost>,而Nginx软件则采用一个server{}标签来标示贰个设想主机。贰个Web服务里能够有四个虚构主机标签对,即能够并且协助多个虚构主机站点。

4.3.2 虚构主机类型

常见的虚拟主机类型有如下两种

1)基于域名的设想主机

所谓基于域名的虚构主机,意思正是通过不同的域名区分不一样的虚构主机,基于域名的设想主机是公司应用最广的设想主机类型,大概具备对外提供劳务的网址采用的都以基于域名的虚构主机,比如: www.znix.top。

2)基于端口的设想主机 

同理,所谓基于端口的设想主机,意思正是因此不一致的端口来分别不相同的设想主机,此类虚构主机对应的公司应用首要为铺面内部网址,比如:一些不指望直接对外提供用户访谈的网址后台等,访问基于端口的设想主机,地址里要包蕴端口,比方:http://blog.znix.top:80

    3)基于IP的虚构主机

 所谓基于IP的设想主机,意思是透过分裂的IP区分分化的虚构主机,

4.3.3 Nginx配置虚构主机的步调如下(适合各个设想主机类型)

1)扩张三个总体的server标签段到结尾处。注意,要放在http的结束大括号前,也等于将server标签段放入http标签。

2)更改server_name及对应网页的root根目录,借使急需另外参数,能够追加或改造。

3)创建Seever_name域名对应网页的根目录,况且创造测验文件,若无index首页,访谈会产出403错误。

    若是是apache软件,没有首页文件,默许会把站点目录上边包车型大巴音讯展现出来

    nginx出403不当化解方式:http://oldboy.blog.51cto.com/2561410/1633952

    autoindex
on;#<==当找不到首页文件时,会议及展览示目录结构,那几个功效相似不要用除非有必要。

   
PS:展现的目录结构中,有个别消息点击就是下载,有的点击正是体现,因为扩展名称不平等

        根本在于nginx软件是或不是能够举办分析

        nginx是还是不是剖析:

        1.htmljpg认知呈现出内容

        2.不认得不分析便间接下载

4)检査Nginx配置文件语法,平滑重启Nginx服务,急忙检査运营结果。

5)在客户端对server_name处配置的域名做host剖判或DNS配置,并检査(ping域名看重返的IP是还是不是科学)。

6)在Win32浏览器中输入地方访谈,或然在Linux客户端做hosts剖析,用wget或curl接地址访谈。

7)在劳务重启或关闭在此之前先举办一遍配置文件检查
/application/ngnix/sbin/nginx
-t

Nginx虚构主机的合法律帮衬助网站为:http://Nginx.org/en/docs/http/requestj3rocessing.html

4.4 【试行】设想主机配置

4.4.1 基于域名的虚构主机

修改配置文件

[[email protected]
~]# cat  /application/nginx/conf/nginx.conf

worker_processes  1;

events {

    worker_connections  1024;

}

http {

    include       mime.types;

    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    server {

        listen       80;

        server_name  www.etiantian.org;

        location / {

            root   html/www;

            index  index.html index.htm;

        }

        error_page   500 502 503 504 
/50x.html;

        location = /50x.html {

            root   html;

        }

    }

    server {

        listen       80;

        server_name  bbs.etiantian.org;

        location / {

            root   html/bbs;

            index  index.html index.htm;

        }

        error_page   500 502 503 504 
/50x.html;

        location = /50x.html {

            root   html;

        }

    }

    server {

        listen       80;

        server_name  blog.etiantian.org;

        location / {

            root   html/blog;

            index  index.html index.htm;

        }

        error_page   500 502 503 504 
/50x.html;

        location = /50x.html {

            root   html;

        }

    }

}

反省布置新闻是或不是科学

[[email protected]
conf]# /application/nginx/sbin/nginx -t

nginx: the configuration file
/application/nginx-1.10.2/conf/nginx.conf syntax is ok

nginx: configuration file
/application/nginx-1.10.2/conf/nginx.conf test is successful

重启服务

[[email protected]
conf]# /application/nginx/sbin/nginx -s reload

小心:服务未有运转的时候不能够动用平滑重启

始建站点目录

[[email protected]
conf]# for name in www blog bbs ;do  mkdir ../html/$name -p
;done

开创主页文件

[[email protected]
conf]# for name in www blog bbs ;do echo “web01 $name”
>../html/$name/index.html  ;done

检查主页内容消息

[[email protected]
conf]# for name in www blog bbs ;do  cat ../html/$name/index.html
;done

web01 www

web01 blog

web01 bbs

修改主机hosts文件

[[email protected]
~]# vim /etc/hosts

172.16.1.8    web01 www.etiantian.org
blog.etiantian.org bbs.etiantian.org

测试

[[email protected]
~]# curl  www.etiantian.org

web01 www

[[email protected]
~]# curl  blog.etiantian.org

web01 blog

[[email protected]
~]# curl  bbs.etiantian.org

web01 bbs

4.4.2 基于端口的虚拟主机

修改配置文件内容

[[email protected]
conf]# vim nginx.conf

    server {

        listen       81;

        server_name  bbs.etiantian.org;

        location / {

            root   html/bbs;

            index  index.html index.htm;

        }

        error_page   500 502 503 504 
/50x.html;

        location = /50x.html {

            root   html;

“nginx.conf” 46L, 1098C written  

重启服务

[[email protected]
conf]# /application/nginx/sbin/nginx -t

nginx: the configuration file
/application/nginx-1.10.2/conf/nginx.conf syntax is ok

nginx: configuration file
/application/nginx-1.10.2/conf/nginx.conf test is successful

[[email protected]
conf]# /application/nginx/sbin/nginx -s reload

检查端口音信

[[email protected]
conf]# netstat -lntup |grep ng

tcp        0      0 0.0.0.0:80                 
0.0.0.0:*                   LISTEN      40110/nginx        

tcp        0      0 0.0.0.0:81                  0.0.0.0:*                   LISTEN     
40110/nginx  

测量试验访问

[[email protected]
~]# curl  bbs.etiantian.org:81

web01 bbs

4.4.3 基于IP的虚构主机

注意:  

采用基于IP的设想主机,配置文件修改后要重启(-s stop)

配置和IP地址配置相关的都要动用(-s stop)重启,不可见利用软重启的方式

修改配置文件

[[email protected]
conf]# cat nginx.conf

worker_processes  1;

events {

    worker_connections  1024;

}

http {

    include       mime.types;

    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    server {

        listen       10.0.0.8:80;

        server_name  www.etiantian.org;

        location / {

            root   html/www;

            index  index.html index.htm;

        }

        error_page   500 502 503 504 
/50x.html;

        location = /50x.html {

            root   html;

        }

    }

}

检查铺排文件格式

[[email protected]
conf]# /application/nginx/sbin/nginx -t

nginx: the configuration file
/application/nginx-1.10.2/conf/nginx.conf syntax is ok

nginx: configuration file
/application/nginx-1.10.2/conf/nginx.conf test is successful

重启服务,注意接纳的是平素重启的章程 

设若nginx配置文件中涉嫌到IP地址的更动只好正真的重启才生效

[[email protected]
conf]# /application/nginx/sbin/nginx -s stop

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

[[email protected]
conf]# netstat -lntup |grep ng

tcp        0      0 10.0.0.8:80                 0.0.0.0:*                   LISTEN     
40592/nginx   

做客测量检验

 

4.5 【标准化配置】nginx配置文件集团标准化

4.5.1 第二个里程碑:  制造虚构主机配置文件存款和储蓄目录

[[email protected]
conf]# pwd

/application/nginx/conf

[[email protected]
conf]# mkdir extra

4.5.2 第贰个里程碑: 生产虚构主机配置文件

[[email protected]
conf]# sed -n ‘10,21p’ nginx.conf > extra/www.conf

[[email protected]
conf]# sed -n ‘22,33p’ nginx.conf > extra/bbs.conf

[[email protected]
conf]# sed -n ‘34,45p’ nginx.conf > extra/blog.conf

4.5.3 第多少个里程碑: 修改nginx配置文件使之加载识别设想主机配置文件

[[email protected]
conf]# cat  nginx.conf

worker_processes  1;

events {

    worker_connections  1024;

}

http {

    include       mime.types;

    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    include extra/*;

}

4.5.4 重启服务

[[email protected]
conf]# /application/nginx/sbin/nginx -t

nginx: the configuration file
/application/nginx-1.10.2/conf/nginx.conf syntax is ok

nginx: configuration file
/application/nginx-1.10.2/conf/nginx.conf test is successful

4.5.5 检查监听端口

[[email protected]
conf]# netstat -lntup |grep ng

tcp        0      0 0.0.0.0:80           0.0.0.0:*       LISTEN      40714/nginx       

4.5.6 查看配置文件的加载顺序

[[email protected]
logs]# /application/nginx/sbin/nginx -T

参数表达:

-T   : test configuration, dump it and exit

  
测量试验配置文件,况兼加载二遍,并呈现加载的依次

4.5.7 【优化】调度 inculde的加载顺序,钦点第二个加载为conf

[[email protected]
conf]# vim nginx.conf

worker_processes  1;

events {

    worker_connections  1024;

}

http {

    include       mime.types;

    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    include extra/www.conf;

    include extra/bbs.conf;

    include extra/blog.conf;

}

4.5.8 重启服务

[[email protected]
conf]# /application/nginx/sbin/nginx -t

nginx: the configuration file
/application/nginx-1.10.2/conf/nginx.conf syntax is ok

nginx: configuration file
/application/nginx-1.10.2/conf/nginx.conf test is successful

[[email protected]
conf]# /application/nginx/sbin/nginx -s reload

4.5.9 说明;

那样的布置可以让用户通过IP访谈的时候,访谈到的网址是www的网址。

4.6 外号的配备

在安插文件中增加别称

[[email protected]
conf]# vim extra/www.conf

    server {

        listen       80;

        server_name  www.etiantian.org
ett.org;

        location / {

            root   html/www;

            index  index.html index.htm;

        }

        error_page   500 502 503 504 
/50x.html;

        location = /50x.html {

            root   html;

        }

    }

}

重启服务

[[email protected]
conf]# /application/nginx/sbin/nginx -s reload

修改hosts 实行拜望测验

[[email protected]
www]# curl  ett.org

web01 www

4.7 status 状态模块

4.7.1 状态模块的布局

修改配置文件,加多三status模块

[[email protected]
conf]# vim nginx.conf

worker_processes  1;

events {

    worker_connections  1024;

}

http {

    include       mime.types;

    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

          server{

          listen  80;

          server_name  status.etiantian.org;

          location / {

            stub_status on;

            access_log   off;

          }

        }

    include extra/www.conf;

    include extra/bbs.conf;

    include extra/blog.conf;

}

自己研究布置文件是或不是科学

[[email protected]
conf]# /application/nginx/sbin/nginx -t

nginx: the configuration file
/application/nginx-1.10.2/conf/nginx.conf syntax is ok

nginx: configuration file
/application/nginx-1.10.2/conf/nginx.conf test is successful

重启服务

[[email protected]
conf]# /application/nginx/sbin/nginx -s reload

做客测量试验

 

说明:

如上页面内容消息根本会被zabbix监察和控制服务调取,形成图像音信

基于图片新闻,进而决断nginx网址服务用户访谈量意况

4.7.2 状态模块表明

参数

参数说明

Active connections

当前的活动客户端连接数量

accepts          

接受客户端连接的总数

handled          

处理的连接总数

requests         

客户端请求的总数

Reading          

nginx正在读请求头的当前连接数。

Writing          

nginx正在将响应写回客户端的当前连接数。

Waiting          

当前空闲客户端连接数等待一个请求。

4.8 nginx的日记作用

nginx的二种日志类别

漏洞非常多日志:记录nginx运维错误景况音讯

做客日志:记录用户访谈日志新闻

法定表达

http://nginx.org/en/docs/ngx\_core\_module.html\#error\_log

4.8.1 定义错误日志消息

系统私下认可配置

#error_log  logs/error.log;

#error_log  logs/error.log  notice;

#error_log  logs/error.log  info;

配备错误日志,修改主配置文件

[[email protected]
logs]# vim ../conf/nginx.conf

worker_processes  1;

error_log  logs/error.log  error;

events {

    worker_connections  1024;

}

http {

    include       mime.types;

    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

          server{

          listen  80;

          server_name  status.etiantian.org;

          location / {

            stub_status on;

            access_log   off;

          }

        }

    include extra/www.conf;

    include extra/bbs.conf;

    include extra/blog.conf;

}

重启服务

[[email protected]
logs]# /application/nginx/sbin/nginx -t

新普京娱乐场,nginx: the configuration file
/application/nginx-1.10.2/conf/nginx.conf syntax is ok

nginx: configuration file
/application/nginx-1.10.2/conf/nginx.conf test is successful

[[email protected]
logs]# /application/nginx/sbin/nginx -s reload

查看错误日志音讯

[[email protected]
logs]# tail  error.log

2017/10/25 11:41:55 [error] 40842#0: *7 open()
“/application/nginx-1.10.2/html/www/favicon.ico” failed (2: No such file
or directory), client: 10.0.0.1, server: www.etiantian.org, request:
“GET /favicon.ico HTTP/1.1”, host: “www.etiantian.org”, referrer:
http://www.etiantian.org/

4.8.2 访谈日志配置

系统暗许配置

#log_format  main  ‘$remote_addr – $remote_user
[$time_local] “$request” ‘

#                  ‘$status $body_bytes_sent
“$http_referer” ‘

#                  ‘”$http_user_agent”
“$http_x_forwarded_for”‘;

 

#access_log  logs/access.log  main;

修改访问日志配置–修改主配置文件

[[email protected]
www]# cat ../../conf/nginx.conf

worker_processes  1;

error_log  logs/error.log  error;

events {

    worker_connections  1024;

}

http {

    include       mime.types;

    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    log_format  main  ‘$remote_addr –
$remote_user [$time_local] “$request” ‘

                  ‘$status $body_bytes_sent “$http_referer” ‘

                  ‘”$http_user_agent” “$http_x_forwarded_for”‘;

 

          server{

          listen  80;

          server_name  status.etiantian.org;

          location / {

            stub_status on;

            access_log   off;

          }

        }

    include extra/www.conf;

    include extra/bbs.conf;

    include extra/blog.conf;

}

修改访谈日志配置–修改设想主机配置文件

[[email protected]
www]# cat /application/nginx/conf/extra/www.conf

    server {

        listen       80;

        server_name  www.etiantian.org
ett.org;

        location / {

            root   html/www;

            index  index.html index.htm;

        }

access_log  logs/access_www.log  main;

        error_page   500 502 503 504 
/50x.html;

        location = /50x.html {

            root   html;

        }

    }

4.8.3 【首要】访谈日志新闻表达

日记内容

10.0.0.1 – – [22/Oct/2017:16:04:54 +0800] “GET /
HTTP/1.1” 304 0 “-” “Mozilla/5.0 (Windows NT 10.0; WOW64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100
Safari/537.36” “-“

配备文件

‘$remote_addr – $remote_user [$time_local]
“$request” ‘

‘$status $body_bytes_sent “$http_referer” ‘

‘”$http_user_agent”
“$http_x_forwarded_for”‘;

日志音讯验证

参数

日志内容

含义

$remote_addr

10.0.0.1

客户端ip地址

 

$remote_user

显示远程访问者用户信息

[$time_local]

[22/Oct/2017:16:04:54 +0800]

显示访问时间

$request

GET / HTTP/1.1"

请求行信息

$status

304

状态码

$body_bytes_sent

0

响应报文主体内容大小

$http_referer

 

$http_user_agent

Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36

客户端浏览网页工具信息

$http_x_forwarded_for

反向代理转发

详尽日志详细表达

Nginx日志变量

说明

$remote_addr

记录访问网站的客户端地址;即源IP地址

$http_x_forwarded_for

当前端有代理服务器时,设置web节点记录客户端地址的配置,此参数生效的

前提是代理服务器上也进行了相关的x_forwarded_for设置

可以记录用户真实的IP地址信息

$remote_user

远程客户端用户名称

$time_local

记录访问时间与时区

$request

用户的http请求起始行信息

$status

http状态码,记录请求返回的状态,例如:200 , 404 , 301等

$body_bytes_sents

服务器发送给客户端的响应body字节数

$http_referer

记录此次请求是从哪个链接访问过来的,可以根据referer进行防盗链设置

即表示是哪个网站介绍过来的

$http_user_agent

记录客户端访问信息,例如:浏览器、手机客户端等

在未有特殊需要的气象下,选择默许的安插即可,越多能够安装的记录日志新闻的变量见:

http://nginx.org/en/docs/http/ngx\_httpJog\_module.html1

4.8.4 日志的切割

切割日志情势

01:利用脚本完成日志切割

简单脚本

[[email protected]
logs]# cat /server/scripts/log_cut.sh

#!/bin/bash

 

mv /application/nginx/logs/access_www.log 
/application/nginx/logs/access_www_`date +%F`.log

/application/nginx/sbin/nginx -s reload

含有决断的脚本

[[email protected]
logs]# cat /server/script/cut_nginx_log.sh

# ! /bin/sh

Dateformat=’date +%Y%m%d’

Basedir= “/application/nginx”

Nginxlogdir=”$Basedir/logs”

Logname=”access_www”

[-d $Nginxlogdir ] && cd $Nginxlogdir || exit
1

[-f ${Logname}.log ] || exit 1

/bin/mv ${Logname}.log
${Dateformat}_${Logname}.log

$Basedir/sbin/nginx -s reload

02.行使系统自带切割软件拓展切割

cat /etc/logrotate.conf

4.9 集团急需消除(location应用)

   1、搭建好一台nginx的web服务器,配置好内网网卡地址与外网网卡地址

   2、web服务器的网址域名叫www.etiantian.org 站点目录为
html/www

   3、需要内网能够访问www.etiantian.org/AV 能源

   4、供给外网不得以访谈www.etiantian.org/AV 能源

4.9.1 须求管理 –location的运用

1、定位要求调控的能源

     location == if

修改配置文件

[[email protected]
extra]# cat www.conf

    server {

        listen       80;

        server_name  www.etiantian.org;

        location / {

            root   html/www;

            index  index.html index.htm;

        }

        location /AV  {

            root  html/www;

            index index.html index.htm;

            allow 172.16.1.0/24;

            deny  all;

        }

    }

 

4.9.2 location 语法

location 指令的效果与利益是依照用户须求的UXC60I来实践不一的运用。

locationn使用的语法为

location [=|~|~*|^~] uri {

  ….

}

 

location 语法表达表

location

[=|~|~*|^~]

uri

{….}

指令

匹配标识

匹配的网站地址

匹配URI后要执行的配置段

 

~ 与~* 的区别

u  ~  相配内容分别轻重缓急写

u  ~* 相配内容不区分的小写

u  !~ 取反

u  ^~ 但四个门户非常相同的时候存在,优先相称 ^~匹配的原委;不做正则表明式的检查 (优先管理)

4.9.3 官方配置示范

location = / {

    [ configuration A ]

}

 

location / {

    [ configuration B ]

}

 

location /documents/ {

    [ configuration C ]

}

 

location ^~ /images/ {

    [ configuration D ]

}

 

location ~* \.(gif|jpg|jpeg)$ {

    [ configuration E ]

}

说明:

“/”诉求将合营配置A,

“/index.html”央浼将协作配置B,

“/documents/document.html”央求将相配配置C,

“/images/1.gif”要求将相称配置D,

“/documents/1.jpg”央浼将非常配置E.

 

不等uri及特殊字符组合匹配的逐条表明

顺序

不用URI及特殊字符组合匹配

匹配说明

1

location = / {}

精确匹配 /

2

location ^~ /image/{

匹配常规字符串,不做正则表达式匹配检查

3

location ~* \.(gif|jpg|jpeg)$ {

正则匹配

4

location /documents/ {

匹配常规字符串,如果有正则,则优先匹配正则

5

location / {

所有location 都不能匹配后的默认匹配

4.9.4 【测试】测试location的访问

4.9.4.1  修改配置文件

概念差别的location重临差别的数值

[[email protected]
extra]# vim www.conf

server {

    listen       80;

    server_name  www.etiantian.org
etiantian.org;

    root   html/www;

    location / {

       return 401;

    }

    location = / {

        return 402;

    }

    location /documents/ {

        return 403;

    }

    location ^~ /images/ {

        return 404;

    }

    location ~* \.(gif|jpg|jpeg)$ {

    return 500;

    }

    access_log logs/access_www.log main;

}

4.9.4.2  访问测量检验

依据央求例外uri的回到值验证
location的布置。

[[email protected]
~]# curl -I -w “%{http_code}\n” -o /dev/null -s 
www.etiantian.org/documents

401

[[email protected]
~]# curl -I -w “%{http_code}\n” -o /dev/null -s 
www.etiantian.org

402

[[email protected]
~]# curl -I -w “%{http_code}\n” -o /dev/null -s 
www.etiantian.org/documents/ss.jpg

500

[[email protected]
~]# curl -I -w “%{http_code}\n” -o /dev/null -s 
www.etiantian.org/documents

401

[[email protected]
~]# curl -I -w “%{http_code}\n” -o /dev/null -s 
www.etiantian.org/documents/

403

[[email protected]
~]# curl -I -w “%{http_code}\n” -o /dev/null -s 
www.etiantian.org/images/1.jpg

404

4.10 rewrite 模块的采纳–地址重写

4.10.1 rewrite 重写模块

  将地方音讯进行重写

rewrite 语法格式

rewrite regex replacement [flag]

rewrite应用标签:server、location、if

4.10.2 rewrite模块三个职能

  1. 落到实处网址地址音信跳转

  2. 完成伪静态

4.10.3 方法一 使用if判断

[[email protected]
extra]# cat www.conf

    server {

        listen       80;

        server_name  www.etiantian.org
ett.org;

if ($host ~* “^etiantian.org$”) {

rewrite ^/(.*) http://www.etiantian.org/$1
permanent;

}

        location / {

            root   html/www;

            index  index.html index.htm;

        }

        access_log  logs/access_www.log 
main;

        error_page   500 502 503 504 
/50x.html;

        location = /50x.html {

            root   html;

        }

    }

测试

[[email protected]
www]# curl  etiantian.org -L

web01 www

 

4.10.4 方法二  再增加上一个区块

server {   

        server_name etiantian.org;

        rewrite ^/(.*) http://www.etiantian.org/$1
permanent;

}  

4.10.5 nginx 的rwite重写集团应用场景

新普京娱乐场 11 
可以调动用户浏览的URAV4L,使其看起来更职业,合乎开荒及产品人士的需求。

新普京娱乐场 12 
为了让追寻引擎收音和录音网址内容,并让用户体验越来越好,公司会将动态U途乐L地址伪装成静态地址提供劳务。

新普京娱乐场 13 
网址换新域名后,让旧域名的拜会跳转到新的域名上,譬喻:让京东的360buy换来了jd.com。

新普京娱乐场 14 
根据特殊变量、目录、客户端的消息实行ULANDL跳转等。

新普京娱乐场 15 
表明:开源软件看似wordpress的,官方都会对伪静态配置进行验证

4.11 nginx 的拜访认证

4.11.1 修改nginx的有关安顿文件

vim extra/www.conf

location / {

        root   html/www;

        index  index.html index.htm;

        auth_basic           “oldboy
training”;

        auth_basic_user_file  
/application/nginx/conf/htpasswd;

 }

4.11.2 成立密码文件

注: 这里运用的htpasswd命令默许是不曾的,要求通过yum install httpd-tools -y
安装

[[email protected]
extra]# htpasswd -c /application/nginx/conf/htpasswd oldboy

New password:

Re-type new password:

Adding password for user oldboy

参数表明:

-c  Create a new file.

    成立三个新的密码文件

-b  Use the password from the command line rather
than prompting for it.

使用免交互的艺术输入用户的密码音信

htpasswd参数表达

参数

参数说明

-c

创建一个新文件。

-n

不更新文件; 显示结果。

-m

强制MD5密码加密。

-d

强制CRYPT加密密码(默认)。

-p

不加密密码(明文)。

-s

强制SHA加密密码。

-b

使用命令行中的密码,而不是提示。(免交互)

-D

删除指定的用户。

 

4.11.3 改动密码文件权限

[[email protected]
extra]#  chmod 400 /application/nginx/conf/htpasswd    

[[email protected]
extra]#  chown -R www.www /application/nginx/conf/htpasswd

[[email protected]
extra]# cat /application/nginx/conf/htpasswd

oldboy:e3OfMiJThE0Qg

4.11.4 重启服务: 配置修改后要重启服务

[[email protected]
extra]# /application/nginx/sbin/nginx -t

nginx: the configuration file
/application/nginx-1.10.2/conf/nginx.conf syntax is ok

nginx: configuration file
/application/nginx-1.10.2/conf/nginx.conf test is successful

[[email protected]
extra]# /application/nginx/sbin/nginx -s reload

4.11.5 访谈测量试验

选用交互式输入密码

[[email protected]
www]# curl www.etiantian.org -uoldboy

Enter host password for user ‘oldboy’:123456

web01 www

行使免交互输入密码

[[email protected]
www]# curl www.etiantian.org -uoldboy:123456

web01 www

401不当表达: 需求证实,不过从未证实

 

http://www.bkjia.com/Linuxjc/1231347.htmlwww.bkjia.comtruehttp://www.bkjia.com/Linuxjc/1231347.htmlTechArticlenginx服务部署 表达,nginx服务配置 第1章
常用的软件 1.1 常用来提供 静态服务 的软件 Apache : 那是中小型 Web
服务的主流, Web 服务器中的老…

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图