nginx 搭建虚拟主机
一、排错三部曲
第一步在客户端上ping服务端ip ping 10.0.0.8
第二部在客户端上telnet服务器端IP、端口 telnet 10.0.0.8
第三部在客户端使用wget命令检测 wget 10.0.0.8 模拟用户访问,排除http服务自身问题
二、部署简单的web站点
1)进入配置文件目录
[root@oldboy conf]# cd /application/nginx
[root@oldboy nginx]# cd conf/
2)把备份的配置文件传递给配置文件
[root@oldboy conf]# egrep -v "^$|#" nginx.conf.default >nginx.conf
3)修改域名
worker_processes ;
events {
worker_connections ;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout ;
server {
listen ;
server_name http://www.cnblogs.com/pyrene/; --》这里修改域名
location / {
root html;
index index.html index.htm;
}
error_page /50x.html;
location = /50x.html {
root html;
}
}
}
4)检查[root@oldboy conf]# /application/nginx/sbin/nginx -t
5)优雅重启 [root@oldboy conf]# /application/nginx/sbin/nginx -s reload
6)修改主页 [root@oldboy nginx]# cd /application/nginx/html/
7)修改主页内容
<html>
<head><title>pyrene</title></head>
<body>
欢迎来到pyrene的博客!
<a href="http://www.cnblogs.com/pyrene/" target=_blank><img src="bingbing.jpg">冰冰</a>
</body>
</html> 这里的bingbing.jpg图片要rz -y上传到html目录里面
vim index.html
8)在浏览器中输入10.0.0.8就可以显示
9)在window里面设置域名解析 win+R 输入drivers --》打开etc文件夹,找到hosts 输入 域名解析 10.0.0.8 http://www.cnblogs.co
10)在cmd中输入www.cnblogs.co 如果返回的是10.0.0.8的返回信息,然后浏览器中输入www.cnblogs.co就能显示网页
三、nginx模块
四、nginx目录结构和配置参数详细介绍
[root@A nginx]# tree
.
├── client_body_temp
├── conf
│ ├── fastcgi.conf
│ ├── fastcgi.conf.default
│ ├── fastcgi_params
│ ├── fastcgi_params.default
│ ├── koi-utf
│ ├── koi-win
│ ├── mime.types 媒体类型
│ ├── mime.types.default
│ ├── nginx.conf
│ ├── nginx.conf.default
│ ├── scgi_params
│ ├── scgi_params.default
│ ├── uwsgi_params
│ ├── uwsgi_params.default
│ └── win-utf
├── fastcgi_temp
├── html
│ ├── 50x.html
│ └── index.html
├── logs 日志
│ ├── access.log 访问日志(可以记录客户从哪里访问的,用的什么浏览器,访问多久,等等)
│ ├── error.log 错误日志
│ └── nginx.pid
├── proxy_temp
├── sbin
│ └── nginx
├── scgi_temp
└── uwsgi_temp
五、nginx主配置文件
所有的标签都在http标签内
nginx最大并发数 是 第6行 worker数 ×1024 ,调节worker数量在第一行,一般情况下数量和核心数相当
上面一个server标签就是一个虚拟主机,server_name 域名 18-21是所有默认请求就在location这边访问
所有等号请求在22-24好区域
22-24是优先处理的,之后处理18-21默认请求
相当于if判断,如果有location先匹配,也有多个
六、参数介绍
worker_processes 1; #worker进程的数量 一般和cpu的数量相同的最好
events { # 模型
worker_connections 1024; # 表示一个worker最大服务的用户数量 epoll模型在这里配置
}
http { #标签
include mime.types; #包含
default_type application/octet-stream; #媒体类型
sendfile on; #开启搞笑传输模式
keepalive_timeout 65; #超时时间
server { #对应一个网站 多个网站多个
listen 80; #监听端口
server_name www.cnblogs.com/pyrene/; #网站域名
location / { #默认的采用这个
root html; #站点目录
index index.html index.htm; #首页文件
}
error_page 500 502 503 504 /50x.html; #优雅显示内容
location = /50x.html {
root html; #如果显示上面的就去这里面找
}
}
}
七、虚拟主机是什么
所谓的虚拟主机,在web服务里面就是一个独立的网站站点,这个站点对应独立的域名(也就是ip或者端口)具有独立的程序及资源目录,可以独立的对提供服务供用户访问
这个独立的站点在配置里是一定格式的标签段标记,对于apache软件来数,一个虚拟主机标签段通常被包含在<VirtuaHost></VirtuaHost>内部,而Nginx软件则使用一个server{}标签来标示一个虚拟主机,一个web服务里可以有多个虚拟主机标签对,即同时可以支持多个虚拟主机站点
八、虚拟主机类型
1、 基于域名的虚拟主机通过域名来区分虚拟主机
外部网站
2、 基于端口的虚拟主机
内部网站或者网站后台
3、基于ip的虚拟主机
九、基于域名创建虚拟主机
1、cp nginx.conf nginx.conf.pyrene.20160513V1 这里修改要带上用户 时间 版本
2、修改配置文件,删除掉error_page
[root@oldboy 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 www.cnblogs.com/pyrene/;
location / {
root html/www;
index index.html index.htm;
}
}
server {
listen 80;
server_name bbs.cnblogs.com/pyrene/;
location / {
root html/bbs;
index index.html index.htm;
}
}
}
3、创建站点目录
[root@A conf]# mkdir ../html/{www,bbs} -p
[root@A conf]# tree ../html/
../html/
├── 50x.html
├── bbs
├── index.html
└── www
4、在两个目录里面生成首页文件
[root@A conf]# echo "www.etiantian.org www.cnblogs.com/pyrene/" >../html/www/index.html #把域名放到首页文件
[root@A conf]# echo " bbs.cnblogs.com/pyrene/" >../html/bbs/index.html
[root@A conf]# cat ../html/{www,bbs}/index.html →检查首页是否生成域名
www.cnblogs.com/pyrene/
bbs.cnblogs.com/pyrene/
5、因为修改了配置文件所以要重启这个服务,但是重启之前要检查是否正确用-t这个参数
首先检查是否正确 /application/nginx/sbin/nginx -t
然后再重启 /application/nginx/sbin/nginx -s 加载 reload 重启,如果reload不行那么就直接stop,然后再启动
6、(解析非常重要)因为没有域名,所以要自己创建在本机测试 vim /etc/hosts 10.0.0.8 www.cnblogs.com/pyrene/ bbs.cnblogs.com/pyrene/
7、查看是否连接ok ping www.cnblogs.com/pyrene/
8、查看访问是否成功
[root@A conf]# curl www.cnblogs.com/pyrene/
www.cnblogs.com/pyrene/
windows下的测试
上面6和7 是在linux本机上面测试,下面是在windows机器上面测试
1、Win+R 输入drivers找etc打开hosts 这里是邮件点击获得管理员权限
2、输入10.0.0.8 www.cnblogs.com/pyrene/ bbs.cnblogs.com/pyrene/
3、在浏览器中输入域名地址ok
原理:
当我们输入网页,在hosts文件里面会解析成IP,这是发起了一条tcp链接,之后建立http连接,http连接里面有请求头,请求头里面对应一个主机名,当请求到达服务器的时候,会读请求头,,如果没有请求头(直接用IP访问)就传递给用户第一个虚拟主机,所以如果只用ip访问就会发给用户第一个虚拟主机,定位到虚拟主机读站点目录,读首页文件,入股没有首页文件是403
原理
十、增加一个博客首页
1、 复制一个虚拟主机
2、在虚拟主机里面修改域名和站点目录
server {
listen 80;
server_name www.cnblogs.com/pyrene/;
location / {
root html/blog;
index index.html index.htm;
}
}
3、创建站点目录,并且把域名放到网站首页
[root@A conf]# mkdir ../html/blog
[root@A conf]# echo www.cnblogs.com/pyrene/ >../html/blog/index.html 4、检查,然后重启
[root@A conf]# /application/nginx/sbin/nginx -t
nginx: the configuration file /application/nginx-1.6.3/conf/nginx.conf syntax is ok
nginx: configuration file /application/nginx-1.6.3/conf/nginx.conf test is successful
[root@A conf]# /application/nginx/sbin/nginx -s reload 5、把域名写到/etc/hosts里面 然后查看
[root@A conf]# curl www.cnblogs.com/pyrene/
www.cnblogs.com/pyrene/
补充:
命令:curl
在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载,是综合传输工具
十一、基于端口的虚拟主机
偶尔会用,办公OA系统、网站程序的后台、CMS发布后台、MYSQL的web客户端使用特殊端口是基于安全考虑的 1、 备份
首先复制原来的nginx.conf 到新的文件nginx.conf.base-name,之后再修改nginx.conf
2、vim nginx.conf
在虚拟主机中修改端口就可以了
server {
listen 8001;
server_name www.cnblogs.com/pyrene/
;
location / {
root html/www;
index index.html index.htm;
}
}
server {
listen 8002;
server_name bbs.cnblogs.com/pyrene/
;
location / {
root html/bbs;
index index.html index.htm;
}
}
server {
listen 8003;
server_name blog.cnblogs.com/pyrene/
;
location / {
root html/blog;
index index.html index.htm;
}
3、检查语法,然后重启 [root@A conf]# ../sbin/nginx -t
nginx: the configuration file /application/nginx-1.6.3/conf/nginx.conf syntax is ok
nginx: configuration file /application/nginx-1.6.3/conf/nginx.conf test is successful
[root@A conf]# ../sbin/nginx -s reload
4、查看端口是否开启
[root@A conf]# netstat -lntup|grep nginx
tcp 0 0 0.0.0.0:8001 0.0.0.0:* LISTEN 2412/nginx
tcp 0 0 0.0.0.0:8002 0.0.0.0:* LISTEN 2412/nginx
tcp 0 0 0.0.0.0:8003 0.0.0.0:* LISTEN 2412/nginx
5、就可以查看了
[root@A conf]# curl www.cnblogs.com/pyrene/:8001
www.cnblogs.com/pyrene/ 总结:基于端口的虚拟主机,和基于域名的虚拟主机主要就是更改一下端口就可以了
nginx 搭建虚拟主机的更多相关文章
- 烂泥:使用nginx利用虚拟主机搭建WordPress博客
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 最近开始打算学习nginx web服务器,既然是学习还是以实用为目的的.我们在此以搭建WordPress博客为例. 搭建WordPress博客,我们需要 ...
- Nginx(http协议代理 搭建虚拟主机 服务的反向代理 在反向代理中配置集群的负载均衡)
Nginx 简介 Nginx (engine x) 是一个高性能的 HTTP 和反向代理服务.Nginx 是由伊戈尔·赛索耶夫为俄罗斯访问量第二的 Rambler.ru 站点(俄文:Рамблер)开 ...
- nginx多虚拟主机优先级location匹配规则及tryfiles的使用
nginx多虚拟主机优先级location匹配规则及tryfiles的使用 .相同server_name多个虚拟主机优先级访问 .location匹配优先级 .try_files使用 .nginx的a ...
- [转] linux学习第四十四篇:Nginx安装,Nginx默认虚拟主机,Nginx域名重定向
Nginx安装 进入存放源码包的目录: cd /usr/local/src 下载源码包: wget http://nginx.org/download/nginx-1.12.1.tar.gz 解压: ...
- nginx配置虚拟主机vhost的方法详解
Nginx vhost配置,可实现基于ip.端口号.servername的虚拟主机,同时可避免直接修改主配置文件.在nginx下配置虚拟主机vhost非常方便.这篇文章主要介绍了nginx配置虚拟主机 ...
- nginx的安装 、Nginx默认虚拟主机、nginx用户认证、nginx 域名重定向
1.nginx:官网:www.nginx.org 下载:wget -c http://nginx.org/download/nginx-1.14.0.tar.gz解压:tar -zxvf nginx ...
- nginx 配置虚拟主机访问PHP文件 502错误的解决方法
最近配置Nginx 服务器虚拟主机 访问目录发现报502错误 百度了很多方法 都不管用 我擦 各种抓狂----- 原本Nginx配置如下: 网上找了很多方法: 查看日志 借助nginx的错误日志 ...
- Nginx中虚拟主机配置
一.Nginx中虚拟主机配置 1.基于域名的虚拟主机配置 1.修改宿主机的hosts文件(系统盘/windows/system32/driver/etc/HOSTS) linux : vim /etc ...
- centos7 安装 iRedmail 后 给nginx添加虚拟主机
iRedmail安装参考官方文档和 https://ywnz.com/linuxyffq/4563.html 准备工作 更新操作系统 yum update -y 安装必要组件 yum install ...
随机推荐
- NSTimer注意内存泄露(真该死)
NSTimer可以用来执行一些定时任务,比较常用的方法就是: + (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTar ...
- VBA 按列查找小工具类似lookUp函数
如上图,查找A列的数据在D,F列是否存在,如果存在背景色变绿,如果不存在则A列的背景色变红. 直接贴上代码: Private Sub CommandButton1_Click() Call lookU ...
- 13 Memcached 永久数据被踢现象
一:Memcached 永久数据被踢现象(1)网上有人反映"memcached"数据丢失,明明设为永久不失效,却莫名其妙的丢失了. 其实这要从2个方面来找原因. 即使前面介绍的惰性 ...
- 推荐一个android 日期时间选择器(转)
最近接触了日期选择的功能,那么肯定得需要一个日期选择控件,Android 系统有自带的 DatePicker 控件,但是不说这个控件有多 难看吧,现在 Android 手机版本那么多,用户弹出来的控件 ...
- python3读取HDA零售企业数据(一)
#-*- coding:utf-8 -*- # 下载河南FDA各药品经营企业目录 import urllib.request import urllib.parse import re import ...
- python学习 05 函数switch功能
1.python没有switch功能,利用字典实现 如果用if else,可行但是效率不高
- volatile的含义及使用场景
volatile保证线程间的数据是可见的(共享的),但不保证数据同步 volatile相当于synchronized的弱实现,也就是说volatile实现了类似synchronized的语义,却又没有 ...
- 利用freemarker生成带fusioncharts图片的word简报
/** * 利用freemarker生成带fusioncharts图片的word简报 * 烟台海颐软件技术论坛 * 作者 牟云飞 新建 * 毕业 ...
- thinkPHP5.0的添加(C操作)
首先创建表单: 后台表单用的是layui框架(模块化前端框架),有自己的表单验证,推荐大家使用,在这里表单我就不再贴代码了 其次后台处理: //接收数据并入库 $data = $this->re ...
- poj 2524 Ubiquitous Religions(并查集)
Ubiquitous Religions Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 23168 Accepted: ...