Nginx 网站服务——虚拟主机配置
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Nginx 网站服务——虚拟主机配置,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含8493字,纯文字阅读大概需要13分钟。
内容图文
第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 [root@web01 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} [root@web01 nginx]# for name in www bbs blog;do echo "10.0.0.7 $name.etiantian.org" >/application/nginx/html/$name/index.html;done [root@web01 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 配置文件
·目的:每一个虚拟主机都生成一个单独的配置文件
第一个里程:创建一个虚拟主机配置文件保存目录 [root@web01 conf]# pwd /application/nginx/conf [root@web01 conf]# mkdir extra |
第二个里程 : 生成虚拟主机配置文件 /application/nginx/conf [root@web01 conf]# sed -n '10,15p' nginx.conf >extra/www.conf [root@web01 conf]# sed -n '16,21p' nginx.conf >extra/bbs.conf [root@web01 conf]# sed -n '22,27p' nginx.conf >extra/blog.conf [root@web01 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 时是否设定上述模块支持: |
[root@web01 ~]# 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 解析处理 |
第四个里程:进行测试访问 [root@web01 ~]# 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
内容总结
以上是互联网集市为您收集整理的Nginx 网站服务——虚拟主机配置全部内容,希望文章能够帮你解决Nginx 网站服务——虚拟主机配置所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。