一、排错三部曲

第一步在客户端上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模块

核心模块Core functionality

 四、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 搭建虚拟主机的更多相关文章

  1. 烂泥:使用nginx利用虚拟主机搭建WordPress博客

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 最近开始打算学习nginx web服务器,既然是学习还是以实用为目的的.我们在此以搭建WordPress博客为例. 搭建WordPress博客,我们需要 ...

  2. Nginx(http协议代理 搭建虚拟主机 服务的反向代理 在反向代理中配置集群的负载均衡)

    Nginx 简介 Nginx (engine x) 是一个高性能的 HTTP 和反向代理服务.Nginx 是由伊戈尔·赛索耶夫为俄罗斯访问量第二的 Rambler.ru 站点(俄文:Рамблер)开 ...

  3. nginx多虚拟主机优先级location匹配规则及tryfiles的使用

    nginx多虚拟主机优先级location匹配规则及tryfiles的使用 .相同server_name多个虚拟主机优先级访问 .location匹配优先级 .try_files使用 .nginx的a ...

  4. [转] linux学习第四十四篇:Nginx安装,Nginx默认虚拟主机,Nginx域名重定向

    Nginx安装 进入存放源码包的目录: cd /usr/local/src 下载源码包: wget http://nginx.org/download/nginx-1.12.1.tar.gz 解压: ...

  5. nginx配置虚拟主机vhost的方法详解

    Nginx vhost配置,可实现基于ip.端口号.servername的虚拟主机,同时可避免直接修改主配置文件.在nginx下配置虚拟主机vhost非常方便.这篇文章主要介绍了nginx配置虚拟主机 ...

  6. nginx的安装 、Nginx默认虚拟主机、nginx用户认证、nginx 域名重定向

    1.nginx:官网:www.nginx.org 下载:wget -c  http://nginx.org/download/nginx-1.14.0.tar.gz解压:tar -zxvf nginx ...

  7. nginx 配置虚拟主机访问PHP文件 502错误的解决方法

    最近配置Nginx 服务器虚拟主机 访问目录发现报502错误 百度了很多方法 都不管用  我擦 各种抓狂----- 原本Nginx配置如下: 网上找了很多方法: 查看日志   借助nginx的错误日志 ...

  8. Nginx中虚拟主机配置

    一.Nginx中虚拟主机配置 1.基于域名的虚拟主机配置 1.修改宿主机的hosts文件(系统盘/windows/system32/driver/etc/HOSTS) linux : vim /etc ...

  9. centos7 安装 iRedmail 后 给nginx添加虚拟主机

    iRedmail安装参考官方文档和 https://ywnz.com/linuxyffq/4563.html 准备工作 更新操作系统 yum update -y 安装必要组件 yum install ...

随机推荐

  1. Atitit..jdk java 各版本新特性 1.0 1.1 1.2 1.3 1.4 1.5(5.0) 1.6(6.0) 7.0 8.0 9.0 attilax 大总结

    Atitit..jdk java 各版本新特性 1.0 1.1 1.2 1.3 1.4 1.5(5.0) 1.6(6.0) 7.0 8.0 9.0 attilax 大总结 1.1. Java的编年史2 ...

  2. UVA 11354 - Bond (最小生成树 + 树链剖分)

    题目链接~~> 做题感悟:这题開始看到时感觉不是树不优点理,一想能够用 Kruskal 处理成树 ,然后就好攻克了. 解题思路: 先用 Kruskal 处理出最小生成树.然后用树链剖分 + 线段 ...

  3. Android使用LinearViewLayout展示数据

    如果要滚动,使用ScrollView来包裹这个LinearViewLayout. ListView控件,自己带有滚动效果的. BaseAdapter LayoutInflater 其他两种绑定方式 A ...

  4. 利用socket.io实现消息实时推送

    最近在写的项目中存在着社交模块,需要实现这样的一个功能:当发生了用户被点赞.评论.关注等操作时,需要由服务器向用户实时地推送一条消息.最终完成的项目地址为:socket-message-push,这里 ...

  5. php 模拟get和post提交方法[解决ajax跨域问题]

    get: $url = "http://www.111cn.net /index.php?a=b&c=d&e=f&g=" . urlencode('王璐个人 ...

  6. ps -ef 和 aux 区别

    Linux中的ps命令是Process Status的缩写.ps命令用来列出系统中当前运行的那些进程.ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信 ...

  7. ASP.NET动态网站制作(20)-- C#(3)

    前言:C#的第三节课,继续上次课的内容,依旧围绕基础的只是讲解. 内容: 1.StringBuilder类:由于string类一旦创建,则不能更改.如果做字符串拼凑的话,将会非常耗费空间,如: str ...

  8. cg语言的一些术语

    在Cg中,用uniform修饰符声明一个参数表明它的值是由外部的数据源初始化的,而且在给定这批向量的处理中保持不变. Uniform inputs,表示一些与三维渲染有关的离散信息数据,这些数据通常由 ...

  9. 使用CSDN CODE来存放OPENSTACK位于GITHUB上的源代码

    use CSDN CODE to pull openstack codes 2014-11-20 Author:Hyphen 问题 直接从GITHUB上获代替码,常常是没保障,特别是用DEVSTACK ...

  10. 【BZOJ1345】[Baltic2007]序列问题Sequence 贪心+单调栈

    [BZOJ1345][Baltic2007]序列问题Sequence Description 对于一个给定的序列a1, …, an,我们对它进行一个操作reduce(i),该操作将数列中的元素ai和a ...