nginx学习笔记之基于端口的虚拟主机基于主机名的虚拟主机root、alias、index配置

nginx学习笔记之基于端口的虚拟主机基于主机名的虚拟主机root、alias、index配置

实验环境:
	centos 测试节点IP:172.16.3.101

基于端口的虚拟主机:
	vim /etc/nginx/nginx.conf
	# 向里面的http {}里面加入如下内容
	  server {									# server定义一个虚拟主机
	        listen 8080;						# 监听本机所有IP端口8080
	        server_name www.test.com;			# 虚拟主机名为:www.test.com
	        location / {						# 根据用户请求的URI决定是否匹配该location,如若匹配到,则将被该location中的配置所处理
	           root "/web/htdocs";				# web资源路径映射
	       	}
	   }
	 # 保存退出
	 # 创建目录/web/htdocs
	 	mkdir -pv /web/htdocs
	 vim /web/htdocs/index.html
	 # 向里面加入如下内容
	 	hello,my serser_name is www.test.com,port is 8080
	 # 保存退出
	 # 测试,在远端浏览器分别输入:http://172.16.3.101 和 http://172.16.3.101:8080
	 # 如果显示对应的结果,则表明基于端口的虚拟主机配置成功

配置基于主机名的虚拟主机
	vim /etc/nginx/nginx.conf
	# 向里面的http{}里面加入如下内容
		  server {							# server定义一个虚拟主机
		        listen 80;					# 监听本机所有IP端口:80
		        server_name www.test.com;	# 虚拟主机名为:www.test.com
		        location / {				# 根据用户请求的RUL决定是否匹配该location,如果匹配到,则将被该location中的配置所处理
		           root "/web/htdocs";		# web资源路径映射
		       		}
		   }

		  server {							# server定义一个虚拟主机
		        listen 80;					# 监听本机所有IP端口:80
		        server_name mail.test.com;	# 虚拟主机名为:mail.test.com
		        location / {				# 上面已经说了,此处不再重复
		           root "/web/mail";		# web资源路径映射
		       }
		   }
	mkdir -pv /web/mail
	vim /web/mail/index.html
	# 向里面加入如下内容
		hello,my server_name is mail.test.com
	# 保存退出
	vim /web/htdocs/index.html
	# 向里面加入如下内容
		hello,my server_name is www.test.com
	# 保存退出
	# 检查其语法
		[[email protected] conf]# nginx -t
		nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
		nginx: configuration file /etc/nginx/nginx.conf test is successful
	# 重启nginx【由于此处修改了端口号,所以需要重启nginx】
		[[email protected] conf]# service nginx restart
		nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
		nginx: configuration file /etc/nginx/nginx.conf test is successful
		Stopping nginx:                                            [  OK  ]
		Starting nginx:                                            [  OK  ]
	# 配置解析文件/etc/hosts【这里访问测试还是在本机进行的,所以我就修改本机的hosts文件】
		vim /etc/hosts
		# 向里面加入如下内容
			172.16.3.101    www.test.com		# 把主机名www.test.com解析为172.16.3.101
			172.16.3.101    mail.test.com 		# 把主机名mail.test.com解析为172.16.3.101
		# 保存退出
	# 测试【在本机直接测试就行,前面已说,hosts文件已经修改好】
	# 测试www.test.com虚拟主机
		[[email protected] conf]# elinks -dump http://www.test.com
  			hello,my server_name is www.test.com
  	# 可知,www.test.com虚拟主机正常
  	# 测试mail.test.com虚拟主机
		[[email protected] conf]# elinks -dump http://mail.test.com
		   hello,my server_name is mail.test.com  
	# 可知,mail.test.com虚拟主机正常

root和alias的区别:
	我这里先不说,且看下面的例子
	vim /etc/nginx/nginx.conf
	# 把如下语句加入http{}里面
		  server {
		        listen 80;
		        server_name www.test.com;
		        location /root {
		           root "/web/htdocs";
		         }
		  }

		  server {
		        listen 80;
		        server_name mail.test.com;
		        location /alias {
		           alias "/web/mail";
		         }
		  }
	# 对于虚拟主机www.test.com
		mkdir -pv /web/htdocs/root/
		vim /web/htdocs/root/index.html
		# 向里面加入如下语句
			hello,this is root type.
		# 保存,退出
	# 对于虚拟主机mail.test.com
		mkdir -pv /web/mail
		vim /web/mail/index.html
		# 向里面加入如下语句
			hello,this is alias type.
		# 保存退出
	# 语法检查
		nginx -t
	# nginx服务重启
		service nginx restart 
	# 配置解析文件/etc/hosts,和上面那个实验做得一样,这里就不重复啦
	# 测试【直接在本机测试】
	# 测试www.test.com虚拟主机
		[[email protected] root]# elinks -dump http://www.test.com/root/
		   hello,this is root type.
	# 可知root类型是这样访问的,是这样起作用的,其对应访问路径为:/web/htdocs/root/index.html,不用我多说了吧。
	# 测试mail.test.com虚拟主机
		[[email protected] root]# elinks -dump http://mail.test.com/alias
		   hello,this is alias type.
	# 可知alias类型是这样访问的,是这样起作用的,其对应访问路径为:/web/mail/index.html,不用我解释了吧。

index配置:设置默认主页面
	看下面的操作吧
	vim /etc/nginx/nginx.conf
	# 把如下内容放入里面
	  server {
	        listen 80;
	        server_name www.test.com;
	        location /root {
	           root "/web/htdocs";
	       }
	    }
	# nginx 语法检查
		nginx -t 
	# nginx 服务重启
		service nginx restart 
	# 创建其web资源路径和文件
		mkdir -pv /web/htdocs/root/
		vim /web/htdocs/root/index.html
		# 向里面加入如下语句
			hello,this is root type.
		# 保存,退出
	# 配置解析文件/etc/hosts
		vim /etc/hosts
		# 把如下语句加入其中
			172.16.3.101	www.test.com
		# 保存退出
	# 访问【在本机测试访问就行】
	# 输入如下语句,这里没有输入主页文件,但是也能正常访问,可知nginx默认主页文件为index.html
		[[email protected] root]# elinks -dump http://www.test.com/root/
		   hello,this is root type.
	vim /etc/nginx/nginx.conf
	# 把刚才加入的语句换成如下语句
	  server {
	        listen 80;
	        server_name www.test.com;
	        location /root {
	           root "/web/htdocs";
	           index test.html
	       }
	    }
	# nginx语法检查
		nginx -t
	# nginx 服务重启
		service nginx restart
	# 访问【在本机测试访问就行】
	# 输入如下语句,这里没有输入主页文件,但是不能正常访问了
		[[email protected] root]# elinks -dump http://www.test.com/root
		                                 403 Forbidden

		   --------------------------------------------------------------------------

		                                  nginx/1.6.2
	# 现在我把主页文件名更改一下
		mv /web/htdocs/root/index.html /web/htdocs/root/test.html
	# 再访问一下
	# 输入如下语句,这里没有输入主页文件,可以正常访问了
		[[email protected] root]# elinks -dump http://www.test.com/root
		   hello,this is root type.
	现在应该明白index的作用了吧
时间: 2024-12-25 14:19:23

nginx学习笔记之基于端口的虚拟主机基于主机名的虚拟主机root、alias、index配置的相关文章

Nginx学习笔记二基本配置

1.Nginx的配置文件默认在Nginx程序安装目录的conf二级目录下,主配置文件为nginx.conf.假设您的Nginx安装 在/usr/local/webserver/nginx/目录下,那么默认的主配置文件则为/usr/local/webserver/nginx/nginx.conf.2.Nginx配置参数:(1)user www www 指定使用的用户和用户所在的组(2)worker_processes 8 指定工作衍生进程数(一般等于CPU的总核数或总核数的两倍,如两个四核CPU,

Nginx学习笔记(1)

Nginx配置文件详解: 配置文件参考:http://blog.csdn.net/tjcyjd/article/details/50695922 Nginx虚拟主机(三种方式): 一个server标签就是一个虚拟主机 1.基于域名的虚拟主机.通过域名来区分虚拟主机 ===>应用:外部网站(重要) 小例子: 去掉注释和空白符: egrep -v "#|^$" nginx.conf.default > nginx.conf nginx配置文件: worker_processes

Nginx学习笔记(九) 配置文件详细说明

配置文件详细说明 工作了几个月要开始做一些后台开发,免不了接触nginx,以前一般只是简单的使用,更多的分析内部模块的具体实现,为了部署需要进一步掌握配置方法. 全局配置信息 #nginx worker进程运行用户以及用户组 user nobody nobody; #nginx worker数量 worker_processes 4; #全局错误日志文件,日志输出级别有debug.info.notice.warn.error.crit(类似于Python中的logging) error_log

Nginx学习笔记(二)——搭建Web服务器

背景介绍 Nginx自诞生起就采用了2.6以后内核所支持的epoll模型进而使得处理效率大幅提升而受到了广大用户的青睐,但就Web服务来讲,Nginx所拥有的功能Apache都可以实现,但反过来确不行,这就是大多数场景时使用Nginx作为反向代理而不能取代Apache的原因.本文以Nginx_1.12.1版本为例,介绍Nginx充当Web服务器时的配置及用法. 软件安装 尽管Nginx已经被收录进epel源,但仍然推荐使用编译的方式进行安装,这样更为灵活.安装步骤为: 1.从Nginx官网下载1

nginx 学习笔记

一.简介 Nginx 是一款轻量级的 Web (HTTP)服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器 关键字: 事件驱动  反向代理 负载平衡  响应静态页面的速度非常快 优势:能支持高达 50,000 个并发连接数  :支持热部署  :很高的稳定性(抵御dos攻击) 二.架构: 在 unix 系统中会以 daemon (守护进程)的方式在后台运行,后台进程包含一个 master 进程和多个 worker 进程(多进程的工作方式) 1.多个 worker 进程之间是对等的,

Nginx学习笔记22TCP代理

Nginx有两种方式实现TCP代理功能: 一种是使用nginx_tcp_proxy_module模块,一般用于Nginx早期版本. 一种是使用ngx_stream_core_module模块,用于1.9及其以后版本. 本文介绍使用stream的方式来实现TCP代理. (1)重新编译Nginx 只有在configure时使用了--with-stream参数,编译出来的nginx程序才支持stream方式实现TCP代理. ./configure --prefix=/opt/nginx   --wit

Nginx学习笔记02Nginx启动运行与命令行

1.1. Nginx启动运行 Nginx的配置文件的一个简单的例子. conf目录下的nginx.cfg文件的内容如下: #worker进程个数. worker_processes  1; #事件模块. events { worker_connections  1024; } #http模块. http { include       mime.types; default_type  application/octet-stream; #在8000端口监听. server { listen  

Nginx学习笔记06负载均衡之(一)负载均衡介绍

1.1.1. 负载均衡的介绍 Nginx中使用upstream配置块,可以方便的配置出一个基于反向代理的负载均衡解决方案. 在upstream中可以包含多个server配置项,每个server配置项指定一个主机地址和端口号,代表一个主机(上游服务器). 在proxy_pass配置反向代理时,可以不指定最终的主机地址,而是只指定upstream配置块指定的引用名称.在本文中,upstream配置了一个包含三个主机地址的负载均衡主机集群. 配置内容: http { include       mim

Nginx学习笔记16rewrite之(三)break

break标志,对目标地址进行请求.break存在时,rewrite的情况比较复杂. Nginx匹配成功某个location中的这种类型的rewrite之后,将不再进行其它location的处理,即其它location即使可以匹配rewrite后的目录地址,也不会执行其中的proxy_pass等指令,而是把rewrite后的目标地址作为Nginx本地页面地址直接访问.当rewrite后产生的本地页面地址对应的物理页面存在时,将可以正常访问该页面,否则产生404错误. Nginx配置: locat