Nginx服务部署详细说明(2)

第4章 nginx进阶 --虚拟主机配置 4.1 【企业要求】需要按照以前nginx服务编译安装过程安装

1、参看已安装服务的配置参数信息

[root@web01 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 【语法检查】检查配置文件

[root@web01 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错误,因为没有首页文件信息

[root@web02 ~]# echo 'web01 www' > /application/nginx/html/www/index.html

<- 在虚拟主机指定的站点目录中创建首页文件         

[root@web02 ~]# curl  

<- 利用curl命令本地检测nginx配置是否成功;已经存在首页文件,测试成功

4.2.2 autoindex on参数实践

1)修改配置文件

[root@web01 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  ;

location / {

root  html/www;

autoindex on;

}

error_page  500 502 503 504  /50x.html;

location = /50x.html {

root  html;

}

}

}

2)重启服务

[root@web01 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

[root@web01 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)基于域名的虚拟主机

所谓基于域名的虚拟主机,意思就是通过不同的域名区分不同的虚拟主机,基于域名的虚拟主机是企业应用最广的虚拟主机类型,几乎所有对外提供服务的网站使用的都是基于域名的虚拟主机,例如: 。

2)基于端口的虚拟主机 

同理,所谓基于端口的虚拟主机,意思就是通过不同的端口来区分不同的虚拟主机,此类虚拟主机对应的企业应用主要为公司内部网站,例如:一些不希望直接对外提供用户访问的网站后台等,访问基于端口的虚拟主机,地址里要带有端口,例如::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错误解决方式:

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虚拟主机的官方帮助网址为:

4.4 【实践】虚拟主机配置 4.4.1 基于域名的虚拟主机

修改配置文件

[root@web01 ~]# 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  ;

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;

}

}

}

检查配置信息是否正确

[root@web01 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

重启服务

[root@web01 conf]# /application/nginx/sbin/nginx -s reload

注意:服务没有启动的时候不能使用平滑重启

创建站点目录

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

创建主页文件

[root@web01 conf]# for name in www blog bbs ;do echo "web01 name&quot;&gt;../html/'>  name">../html/ name/index.html  ;done

检查主页内容信息

[root@web01 conf]# for name in www blog bbs ;do  cat ../html/$name/index.html ;done

web01 www

web01 blog

web01 bbs

修改主机hosts文件

[root@web01 ~]# vim /etc/hosts

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

测试

[root@web01 ~]# curl 

web01 www

[root@web01 ~]# curl  blog.etiantian.org

web01 blog

[root@web01 ~]# curl  bbs.etiantian.org

web01 bbs

4.4.2 基于端口的虚拟主机

修改配置文件内容

[root@web01 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 

重启服务

[root@web01 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

[root@web01 conf]# /application/nginx/sbin/nginx -s reload

检查端口信息

[root@web01 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 

测试访问

[root@web01 ~]# curl  bbs.etiantian.org:81

web01 bbs

4.4.3 基于IP的虚拟主机

注意:  

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

配置和IP地址配置相关的都要采用(-s stop)重启,不能够使用软重启的方式

修改配置文件

[root@web01 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  ;

location / {

root  html/www;

index  index.html index.htm;

}

error_page  500 502 503 504  /50x.html;

location = /50x.html {

root  html;

}

}

}

检查配置文件格式

[root@web01 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地址的更改只能正真的重启才生效

[root@web01 conf]# /application/nginx/sbin/nginx -s stop

[root@web01 conf]# /application/nginx/sbin/nginx

[root@web01 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 第一个里程碑:  创建虚拟主机配置文件存储目录

[root@web01 conf]# pwd

/application/nginx/conf

[root@web01 conf]# mkdir extra

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

[root@web01 conf]# sed -n '10,21p' nginx.conf > extra/www.conf

[root@web01 conf]# sed -n '22,33p' nginx.conf > extra/bbs.conf

[root@web01 conf]# sed -n '34,45p' nginx.conf > extra/blog.conf

4.5.3 第三个里程碑: 修改nginx配置文件使之加载识别虚拟主机配置文件

[root@web01 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 重启服务

[root@web01 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 检查监听端口

[root@web01 conf]# netstat -lntup |grep ng

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

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

[root@web01 logs]# /application/nginx/sbin/nginx -T

参数说明:

-T   : test configuration, dump it and exit

测试配置文件,并且加载一遍,并显示加载的顺序

4.5.7 【优化】调整 inculde的加载顺序,指定第一个加载为conf

[root@web01 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 重启服务

[root@web01 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

[root@web01 conf]# /application/nginx/sbin/nginx -s reload

4.5.9 说明;

这样的配置能够让用户通过IP访问的时候,访问到的网站是www的网站。

4.6 别名的配置

在配置文件中添加别名

[root@web01 conf]# vim extra/www.conf

server {

listen      80;

server_name  ett.org;

location / {

root  html/www;

index  index.html index.htm;

}

error_page  500 502 503 504  /50x.html;

location = /50x.html {

root  html;

}

}

}

重启服务

[root@web01 conf]# /application/nginx/sbin/nginx -s reload

修改hosts 进行访问测试

[root@web01 www]# curl  ett.org

web01 www

4.7 status 状态模块 4.7.1 状态模块的配置

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

[root@web01 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;

}

检查配置文件是否正确

[root@web01 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

重启服务

[root@web01 conf]# /application/nginx/sbin/nginx -s reload

访问测试

说明:

以上页面内容信息主要会被zabbix监控服务调取,形成图像信息

根据图形信息,从而判断nginx网站服务用户访问量情况

4.7.2 状态模块说明

参数

 

参数说明

 

Active connections

 

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

 

accepts         

 

接受客户端连接的总数

 

handled         

 

处理的连接总数

 

requests         

 

客户端请求的总数

 

Reading         

 

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

 

Writing         

 

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

 

Waiting         

 

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

 

linux

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/5aa58c1cb6860e1488d34c5e46b740bc.html