Nginx 网站服务——虚拟主机配置

第1章 Nginx 网站服务

1.1 web网站服务介绍:

1.1.1 提供静态服务的软件


Apache:这是中小型Web服务的主流,Web服务器中的老大哥。

Nginx:大型网站Web服务的主流,曾经Web服务器中的初生牛犊,现已长大。

Nginx的分支Tengine(http://tengine.taobao.org/)目前也在飞速发展。

Lighttpd:这是一个不温不火的优秀Web软件,社区不活跃,静态解析效率很高。在Nginx流行前,它是大并发静态业务的首选,国内百度贴吧、豆瓣等众多网站都有Lighttpd奋斗的身影。

1.1.2 提供动态服务的软件


PHP(FastCGI):大中小型网站都会使用,动态网页语言PHP程序的解析容器。它可配合Apache解析动态程序,不过,这里的PHP不是FastCGI守护进程模式,而是mod_php5.so(module)。也可配合Nginx解析动态程序,此时的PHP常用FastCGI守护进程模式提供服务。(.php)

Tomcat:中小企业动态Web服务主流,互联网Java容器主流(如jsp、do)。

Resin:大型动态Web服务主流,互联网Java容器主流(如jsp、do)。

IIS(Internet information services):微软windows下的Web服务软件(如asp、aspx)

1.2 Nginx web服务部署及说明

1.2.1 Nginx 软件特点


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

2. 资源消耗少:在3万并发连接下,开启10个Nginx线程消耗的内存不到200MB

3. 可以做HTTP反向代理及加速缓存、即负载均衡功能,内置对RS节点服务器健康检查功能,

这相当于专业的Haproxy软件或LVS的功能。

4. 具备Squid等专业缓存软件等的缓存功能。

5. 支持异步网络I/O事件模型epoll(nginx)-select(apache)(Linux 2.6+)

1.2.2 Nginx 软件部署(编译安装)


#第一个里程:下载nginx程序软件包并解压

mkdir /server/tools -p

cd /server/tools

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

tar xf nginx-1.14.0.tar.gz


#第二个里程:解决软件依赖问题

yum install openssl-devel pcre-devel -y

openssl-devel --- 为了让nginx服务可以实现https访问的功能

pcre-devel    --- 兼容perl语言的正则表达式(^ shell:以什么开头  perl:^/)

nginx使用时会应用一个参数rewrite 正则表达式信息(perl)


#第三个里程:创建worker进程的管理用户

useradd -s /sbin/nologin -M www


#第四个里程:编译安装软件过程

#编译安装软件三部曲

#01.进行软件的配置

mkdir /server/tools -p

cd /server/tools

cd nginx-1.14.0

./configure --prefix=/application/nginx-1.14 --user=www --group=www --with-http_ssl_module --with-http_stub_status_module

#02.进行软件的编译(将各个语言编写代码翻译成系统可以识别的二进制信息)

make

#03.进行编译安装(将软件最终安装到系统中)

make install


#重要配置参数总结

--prefix=PATH                      set installation prefix

设置软件程序安装到哪个目录,指定的目录不需要创建出来

--user=USER                        set non-privileged user for worker processes

--group=GROUP                      set non-privileged group for worker processes

--with-http_ssl_module             enable ngx_http_ssl_module(可以实现https)

--with-http_stub_status_module     enable ngx_http_stub_status_module(主要用于监控服务运行状态)


#第五个里程:创建程序软链接

ln -s /application/nginx-1.14/ /application/nginx

[[email protected] application]# ll /application/nginx-1.14/

total 16

drwxr-xr-x 2 root root 4096 May 16 10:49 conf

drwxr-xr-x 2 root root 4096 May 16 10:49 html

drwxr-xr-x 2 root root 4096 May 16 10:49 logs

drwxr-xr-x 2 root root 4096 May 16 10:49 sbin


#第六个里程:启动nginx服务

/application/nginx/sbin/nginx

1.2.3 Nginx 安装目录及命令解释


目录


说明


conf


--- 所有nginx相关的配置文件保存目录


nginx.conf


--- nginx程序主配置文件


html


--- 表示web服务站点目录


logs


--- 日志目录


sbin


--- 程序命令保存目录


Nginx命令参数说明:

nginx  –help   -----查询nginx的帮助信息

Options:

-?,-h         : this help

-v            : show version and exit

显示软件版本信息并退出

-V            : show version and configure options then exit

显示版本信息和配置参数信息并退出

-t            : test configuration and exit

配置文件语法检查(ansible语法检查功能)

-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

发送一个信号给master进程

-p   prefix     : set prefix path (default: /usr/share/nginx/)

-c   filename   : set configuration file (default: /etc/nginx/nginx.conf)

-g   directives : set global directives out of configuration file

1.2.4 Nginx 主配置文件nginx.conf

1.2.5 Nginx 站点目录及首页文件概念说明

1.3 Nginx 虚拟主机配置

1.3.1 虚拟主机的概念


所谓虚拟主机,在Web服务里就是一个独立的网站站点,这个站点对应独立的域名

(也可能是IP或端口),具有独立的程序及资源目录,可以独立地对外提供服务供用户访问

这个独立的站点在配置里是由一定格式的标签段标记的,对于Apache软件来说

一个虚拟主机的标签段通常被包含在<Virtuallost></VirtualHost>内,而Nginx软件则

使用一个server{}标签来标示一个虚拟主机。一个Web服务里可以有多个虚拟主机标签

对,即可以同时支持多个虚拟主机站点。

1.3.2 虚拟主机的类型

·常见的虚拟主机类型有如下几种。


(1)基于域名的虚拟主机

所谓基于域名的虚拟主机,意思就是通过不同的域名区分不同的虚拟主机,基于域

名的虚拟主机是企业应用最广的虚拟主机类型,几乎所有对外提供服务的网站使用的都

是基于域名的虚拟主机,例如:www.etiantian.org。


(2)基于端口的虚拟主机

同理,所谓基于端口的虚拟主机,意思就是通过不同的端口来区分不同的虚拟主

机,此类虚拟主机对应的企业应用主要为公司内部的网站,例如:一些不希望直接对

外提供用户访问的网站后台等,访问基于端口的虚拟主机,地址里要带有端口,例如:

http://www.etiantian.org:9000。


(3)基于IP的虚拟主机

同理,所谓基于IP的虚拟主机,意思就是通过不同的IP区分不同的虚拟主机,此

类虚拟主机对应的企业应用非常少见。一般不同的业务需要使用多IP的场景都会在负

载均衡器上进行VIP绑定,而不是在Web上绑定IP来区分不同的虚拟机。

1.3.3 基于域名的虚拟主机配置


第一步:申请域名信息

先进行购买,域名备案,在申请域名网站上,可以进行A记录的配置 www.oldboy.com -- 服务器公网IP地址


第二步:编写配置文件  ----- nginx.conf

server {

listen       80;

server_name  www.etiantian.org;

root   html/www;

index  index.html index.htm;

}

server {

listen       80;

server_name  bbs.etiantian.org;

root   html/bbs;

index  index.html index.htm;

}

server {

listen       80;

server_name  blog.etiantian.org;

root   html/blog;

index  index.html index.htm;

}


第三步:检查配置文件语法信息

nginx -t


第四步:创建虚拟主机站点目录,创建虚拟主机首页文件

mkdir -p /application/nginx/html/{www,bbs,blog}

[[email protected] nginx]# for name in www bbs blog;do echo "10.0.0.7 $name.etiantian.org" >/application/nginx/html/$name/index.html;done

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

10.0.0.7 www.etiantian.org

10.0.0.7 bbs.etiantian.org

10.0.0.7 blog.etiantian.org


第五步:进行DNS解析(配置hosts)

配置hosts文件:

01. windows中要进行配置

02. Linux中也要进行配置


第六步:配置文件修改后要进行重启服务

nginx -s reload

1.3.4 基于端口的虚拟主机配置


第一里程:修改配置文件

server {

listen       80;

server_name  www.etiantian.org;

root   html/www;

index  index.html index.htm;

}

server {

listen       81;

server_name  bbs.etiantian.org;

root   html/bbs;

index  index.html index.htm;

}

server {

listen       82;

server_name  blog.etiantian.org;

root   html/blog;

index  index.html index.htm;

}


第二里程:平滑重启nginx服务

nginx -s reload


第三里程:进行访问测试

netstat -lntup|grep nginx

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

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

tcp   0   0 0.0.0.0:82       0.0.0.0:*         LISTEN      19363/nginx

1.3.5 基于IP的虚拟主机配置


第一里程:编写配置文件,监听本地网卡上有的IP地址

server {

listen       10.0.0.7:80;

server_name  www.etiantian.org;

root   html/www;

index  index.html index.htm;

}

server {

listen       10.0.0.8:80;

server_name  bbs.etiantian.org;

root   html/bbs;

index  index.html index.htm;

}


第二里程:重启nginx服务

重点强调:nginx服务配置文件中只要涉及到IP地址的修改,都要重启nginx服务,而不是平滑重启

nginx -s stop && nginx


第三里程:进行访问测试

curl  10.0.0.7

curl  10.0.0.8

1.4 Nginx 常用功能配置

1.4.1 规范优化Nginx配置文件

·目的:每一个虚拟主机都生成一个单独的配置文件


第一个里程:创建一个虚拟主机配置文件保存目录

[[email protected] conf]# pwd

/application/nginx/conf

[[email protected] conf]# mkdir extra


第二个里程: 生成虚拟主机配置文件

/application/nginx/conf

[[email protected] conf]# sed -n '10,15p' nginx.conf >extra/www.conf

[[email protected] conf]# sed -n '16,21p' nginx.conf >extra/bbs.conf

[[email protected] conf]# sed -n '22,27p' nginx.conf >extra/blog.conf

[[email protected] conf]# cat extra/*

server {

listen       80;

server_name  bbs.etiantian.org;

root   html/bbs;

index  index.html index.htm;

}

server {

listen       80;

server_name  blog.etiantian.org;

root   html/blog;

index  index.html index.htm;

}

server {

listen       80;

server_name  www.etiantian.org;

root   html/www;

index  index.html index.htm;

}

说明:虚拟主机文件配置完毕,要将nginx中的虚拟主机配置信息删除


第三个里程:编写nginx主配置文件,加载虚拟主机配置文件  ---nginx.conf

worker_processes  2;

events {

worker_connections  1024;

}

http {

include       mime.types;

default_type  application/octet-stream;

sendfile        on;

keepalive_timeout  65;

include       extra/www.conf;

include       extra/blog.conf;

include       extra/bbs.conf;

}

####也可用 include       extra/*;  表示extra目录下的所有配置文件。


第四个里程:重启nginx服务

nginx -s reload

1.4.2 配置Nginx 服务别名功能(主要用于测试)


#####修改配置文件

server {

listen       80;

server_name  www.etiantian.org www.et.org;

root   html/www;

index  index.html index.htm;

}

#####检查语法

nginx -t

#####平滑重启nginx

nginx -s reload

####说明:配置别名也需要做好DNS解析

1.4.3 Nginx 状态模块页面配置


Nginx软件在编译时有一个with-http_stub_status_module模块,这个模块功能是记录Nginx的基本访问状态信息,让使用者了解Nginx的工作状态。要想使用状态模块,在编译时必须增加--with-http_stub_status_module参数。

可通过如下方法检测编译安装Nginx时是否设定上述模块支持:


[[email protected] ~]# nginx -V

nginx version: nginx/1.14.0

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.14.0 --user=www --group=www --with-http_ssl_module --with-http_stub_status_module


第一个里程:编写配置文件

# 编写一个status虚拟主机配置文件

cp extra/www.conf extra/status.conf

server {

listen       80;

server_name  status.etiantian.org;

stub_status;

#root   html/www;

#index  index.html index.htm;

}

# 编写主配置文件,调用status虚拟主机配置文件

worker_processes  2;

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;

include       extra/status.conf;

}


第二个里程:重启nginx服务

nginx -t    #--------检查语法

nginx -s reload   ###-------平滑重启


第三个里程:进行DNS解析处理


第四个里程:进行测试访问

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

Active connections: 1

server accepts handled requests

6926 6926 7067

Reading: 0 Writing: 1 Waiting: 0

原文地址:http://blog.51cto.com/zhuzhiwei/2121731

时间: 2024-10-10 17:07:03

Nginx 网站服务——虚拟主机配置的相关文章

Nginx(二):虚拟主机配置

什么是虚拟主机? 虚拟主机使用的是特殊的软硬件技术,它把一台运行在因特网上的服务器主机分成一台台"虚拟"的主机,每台虚拟主机都可以是一个独立的网站,可以具有独立的域名,具有完整的Intemet服务器功能(WWW.FTP.Email等),同一台主机上的虚拟主机之间是完全独立的.从网站访问者来看,每一台虚拟主机和一台独立的主机完全一样. 利用虚拟主机,不用为每个要运行的网站提供一台单独的Nginx服务器或单独运行一组Nginx进程.虚拟主机提供了在同一台服务器.同一组Nginx进程上运行多

nginx学习之——虚拟主机配置

例子1: 基于域名的虚拟主机 server { listen 80;  #监听端口 server_name a.com; #监听域名 location / { root /var/www/a.com;   #根目录定位 index index.html; } } 例子2: 基于端口的虚拟主机配置 server { listen 8080; server_name 192.168.1.204; location / { root /var/www/html8080; index index.htm

nginx服务器多虚拟主机配置

默认nginx读取的实力就是站点html下的index.html 文件,如果希望实现两个站点访问一台服务器,并且服务器响应的数据不同,则可以在nginx下的conf文件夹里配置nginx.conf文件 在目录下创建一个根站点,里面再创建两个子站点,子站点中的index.html就作为响应文件展示. myserver--->lisa------>index.html --->kevin---->index.html 站点创建完成后,开始配置站点信息:因为是多个站点所以会配置多个ser

Nginx虚拟主机配置实践(一)

Nginx虚拟主机配置实践(一) 一.虚拟主机的概念 在Web服务里虚拟主机就是一个独立的网站站点,这个站点对应独立的域名(也可能是IP或端口),具有独立的程序及资源目录,可以独立的对外提供服务供用户访问. 二.虚拟主机的类型 基于域名的虚拟主机 基于端口的虚拟主机 基于IP的虚拟主机 说明:实际生产中用的最多的就是基于域名的虚拟主机,其他两种了解即可. 三.基于一个域名虚拟主机的配置 Nginx主配置文件结构 创建一个最简化的Nginx主配置文件 [[email protected] conf

nginx网站服务于虚拟主机

   Nginx网站服务于虚拟主机 1:nginx的优点: 稳定性高 系统资源消耗低 http并发量处理能力好可支持30000-50000个并发请求 主要用于静态页面 以线程为单位,一个进程对应多个用户,(线程很少占用系统资源) 2:与Apache的对比: Apache主要用于动态页面 支持功能多 稳定性能高 Apache以进程为单位,一个用户对应一个进程(一对一) 3:nginx主要用于:电商,网站,社交,门户...... 4:安装及控制nginx 1.安装支持软件 [[email prote

构建Nginx服务器之一 安装及虚拟主机配置

一.Nginx简介     Nginx("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本0.1.0发布于2004年10月4日.其将源代码以类BSD许可证的形式发布,因它的稳定性.丰富的功能集.示例配置文件和低系统资源的消耗而闻名. 它已经在众多流量很大的俄罗斯网站上使用了很长时间,这些网站包括Yandex.

Nginx虚拟主机配置实践之nginx访问同一个地址方法(二)

Nginx虚拟主机配置实践之nginx访问同一个地址方法(二) 一.虚拟主机别名介绍 虚拟主机别名就是为虚拟主机设置除了主域名以外的另一个或多个域名名字,这样就能实现用户访问的多个域名对应于同一个虚拟主机网站的功能.在生产环境中,以www.afeilinux.com域名的虚拟主机为例,为其增加一个别名afeilinux.com时,在该域名出现的网站内容和访问www.afeilinux.com得到的结果是一样的. 二.实施方法 第一种方法:Nginx虚拟主机的别名配置 更改wtf.conf配置文件

nginx基于域名的虚拟主机配置

与apache服务器类似,nginx也有基于域名,IP及端口的虚拟主机配置,在实际工作场景中,基于域名的虚拟主机配置较常见.nginx服务的主要配置文件nginx.conf[[email protected] conf]# ls -l nginx.conf-rw-r--r-- 1 root root 2788 Jan 14 17:41 nginx.conf[[email protected] conf]# pwd/application/nginx/conf 去掉注释及空行后的配置文件[[ema

Nginx 反向代理 负载均衡 虚拟主机配置

通过本章你将学会利用Nginx配置多台虚拟主机,清楚代理服务器的作用,区分正向代理和反向代理的区别,搭建使用Nginx反向搭理和负载均衡,了解Nginx常用配置的说明.即学即用,你还在等什么?一睹为快先了解Nginx的三大功能Nginx 可以作为一台http服务器.可以做网站静态服务器,比如图片服务器,高效,减轻服务器压力.同时它也支持https服务.Nginx 可以配置多台虚拟主机.可以实现在一台服务器虚拟出多个网站效果,省钱.Nginx 最重要的是反向代理,负载均衡.在服务器集群中,Ngin