LNMP架构应用实战——Nginx配置虚拟主机
LNMP架构应用实战——Nginx配置虚拟主机
前面介绍了nginx服务的安装与配置文件,今天介绍下它的另一种实用配置——“虚拟主机”,每个虚拟主机可以是一个独立的网站,可以具有独立的域名,同一台服务器上的不同的虚拟主机之间是独立的,用户访问不同虚拟主机如同访问不同的服务器一样,因此它不需要为一个单独的WEB站点提供单独一个nginx服务器和一个单独的nginx进程
1、nginx虚拟主机简单介绍
同apache服务一样,它也有三种不同的虚拟主机,基于域名的虚拟主机、基于IP的虚拟主机与基于端口的虚拟主机,至于其中的区别,请参考前面的 apache服务器的虚拟主机章节的相关介绍
2、nginx虚拟主机配置环境
系统环境
[root@centos6 scripts]# cat /etc/redhat-release
CentOS release 6.5 (Final)
[root@centos6 scripts]# uname -r
2.6.32-431.el6.x86_64
nginx服务的版本
[root@centos6 scripts]# /application/nginx/sbin/nginx -v
nginx version: nginx/1.10.1
3、nginx虚拟主机配置准备
生产环境的规范很重要,这是运维的重点,因此,配置前创建站点目录
[root@centos6 ~]# mkdir /www/{www,bbs,blog} -p
[root@centos6 ~]# tree /www
/www
+-- bbs
+-- blog
+-- www
3 directories, 0 files
用于存放站点文件的目录
---------------
授权目录
--------------
[root@centos6 ~]# chown -R nginx.nginx /www
[root@centos6 ~]# ll /www/
total 12
drwxr-xr-x. 2 nginx nginx 4096 Dec 4 18:38 bbs
drwxr-xr-x. 2 nginx nginx 4096 Dec 4 18:38 blog
drwxr-xr-x. 2 nginx nginx 4096 Dec 4 18:38 www
------------------------------------------------------
接下来写点东东进去吧,用于后面的测试
-----------------------------------------------------
[root@centos6 ~]# echo "welcont to mingongge's web stie" >/www/www/index.html
[root@centos6 ~]# echo "welcont to mingongge's bbs stie" >/www/bbs/index.html
[root@centos6 ~]# echo "welcont to mingongge's blog stie" >/www/blog/index.html
[root@centos6 ~]# cat /www/www/index.html
welcont to mingongge's web stie
[root@centos6 ~]# cat /www/bbs/index.html
welcont to mingongge's bbs stie
[root@centos6 ~]# cat /www/blog/index.html
welcont to mingongge's blog stie
生产环境检查也同样很重要,检查、检查 、检查,重要的事情说三遍!!!!
4、nginx虚拟主机配置
配置nginx 虚拟主机有两种方式,一种可以像前面apache服务这种,单独配置一个虚拟主机的配置文件,另一种也可以在主配置文件 nginx.conf中添加server标签,接下来介绍的是第一种方式,通过在配置文件里添加包含关系,单独配置虚拟主机的配置文件目录与配置文件,这样实际生产环境中比较常见,服务多了,也容易维护。
--------------------
配置主配置文件
-------------------
只需要在主配置文件nginx.conf最后一行加下如下配置
include extra/vhosts/*.conf;
-----------------------------
创建虚拟主机配置目录
----------------------------
[root@centos6 conf]# pwd
/application/nginx/conf
[root@centos6 conf]# mkdir -p extra/vhosts
-----------------------------
创建虚拟主机配置文件
----------------------------
[root@centos6 conf]# cd extra/vhosts/
[root@centos6 vhosts]# mkdir bbs www blog
[root@centos6 vhosts]# cp ../../nginx.conf www/www.conf
[root@centos6 vhosts]# cp ../../nginx.conf bbs/bbs.conf
[root@centos6 vhosts]# cp ../../nginx.conf blog/blog.conf
通过主配置文件来修改,其实只需要里面的server标签的内容,同样也可以做一个模板文件出来,通过cp命令改名后,再修改其内容,效果都一样
-----------------------------
配置虚拟主机配置文件
----------------------------
WWW站点虚拟主机配置文件(比较简单)
server {
listen 80;
server_name www.mingongge.com;
location / {
root /www/www;
index index.html index.htm;
}
}
基它的相同,只需要改下站点目录路径与域名信息
BBS站点虚拟主机配置文件
server {
listen 80;
server_name bbs.mingongge.com;
location / {
root /www/bbs;
index index.html index.htm;
}
}
BLOG站点虚拟主机配置文件
server {
listen 80;
server_name blog.mingongge.com;
location / {
root /www/blog;
index index.html index.htm;
}
}
5、重启服务与测试访问
[root@centos6 vhosts]# /application/nginx/sbin/nginx -t
nginx: the configuration file /application/nginx-1.10.1/conf/nginx.conf syntax is ok
nginx: configuration file /application/nginx-1.10.1/conf/nginx.conf test is successful
[root@centos6 vhosts]# /application/nginx/sbin/nginx -s reload
[root@centos6 vhosts]# lsof -i :80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 2469 root 6u IPv4 15462 0t0 TCP *:http (LISTEN)
nginx 2519 nginx 6u IPv4 15462 0t0 TCP *:http (LISTEN)
[root@centos6 vhosts]# ps -ef|grep nginx
root 2469 1 0 18:47 ? 00:00:00 nginx: master process /application/nginx/sbin/nginx
nginx 2519 2469 0 19:14 ?00:00:00 nginx: worker process
打开浏览器测试访问吧
本地DNS解析不要忘记了,否则无法通过域名来访问的
至此nginx 虚拟主机配置完成,基于两种方式的虚拟主机配置,请参考apache服务的基于IP与基于端口的虚拟主机配置章节
- 分布式事务 TCC-Transaction 源码解析 —— 调试环境搭建
- 机器学习入门——使用python进行监督学习
- 推荐算法的介绍,第一部分——协同过滤与奇异值分解
- 在ASP中实现UNIX时间戳
- 【学术】厉害了我的哥,国外技术大咖仿造了谷歌的Arts &Culture,找到古代的“你”
- 【技巧】应赛技巧,教你如何在Kaggle比赛中排在前1%
- 熔断器 Hystrix 源码解析 —— 命令执行(一)之正常执行逻辑
- 智能主题检测与无监督机器学习:识别颜色教程
- 如何下载安装Weka机器学习工作平台
- Dubbo 源码解析 —— LoadBalance
- 如何处理机器学习中类的不平衡问题
- 【死磕Java并发】—– Java内存模型之重排序
- Mask R-CNN源代码终于来了,还有它背后的物体检测平台
- 37个TOP实例命令,超过一半你肯定都没见过
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- SAP Spartacus默认的baseSite是从源代码什么地方读取的
- SAP Spartacus CmsPage的加载逻辑
- JUnit 5 测试 Spring 引擎的时候提示 junit-vintage 错误
- SAP Spartacus activeBaseSite的设置逻辑
- SAP Spartacus取语言设置的入口程序
- 几行 Python 代码实现文字识别,你敢信?
- SAP Spartacus的navigation初始化
- 大数据ETL实践探索 ---- 笔试面试考点
- jQuery 效果
- jQuery 样式操作
- Nginx 限制资源的访问
- 如何设计一个秒杀系统
- Linux下登录凭证窃取技巧
- kali修改root密码
- PPT画成这样,述职答辩还能过吗?