目录
虚拟主机与nginx.conf
基于端口号配置虚拟主机
基于IP配置Nginx虚拟主机
基于域名配置虚拟主机
设置目录列表
子配置文件的引入
Nginx默认配置文件中指令详解:
配置文件中,以“#”开始的注释行,Nginx并不会对其进行解析,该注释行的作用仅用于解释和说明;
Nginx的指令由指令名称和参数组成。例如,第1行worker_processes指令的参数为“1”,第3行worker_connections指令的参数为“1024”等;
当一个指令中含有多个子指令作为参数时,需要使用大括号“{ }”进行包裹,如2~4行配置;
每条指令都以分号“;”结尾。
Nginx默认配置文件中指令详解:
在该配置中引入的文件路径,可以是相对路径,也可以是绝对路径。
相对路径的设置如上述第6行的配置,表示引入的mime.types文件是相对于当前配置文件nginx.conf所在的目录“/usr/local/nginx/conf”。
绝对路径的设置就是以Linux的根目录“/”开始的文件路径。
例如,可以将mime.types文件的引入路径写成如下形式。
1.2基于端口号配置虚拟主机
基于端口号配置虚拟主机的方式,是Nginx中配置虚拟主机最简单的方式。
原理:一个Nginx监听多个端口,根据不同的端口号,来区分不同的网站。
第1行注释,用于告知用户Nginx中虚拟主机的配置可以基于IP地址、域名和端口号进行设置;
第2~10行配置是用于在server块中完成虚拟主机的设置;
第3行配置表示使用listen命令监听端口,第4行配置表示使用“IP/域名:端口号”的方式监听端口,在实际设置中两者只能选其一;
http块中的每个server块都是一个虚拟主机。
(1)修改nginx.conf配置文件,在http块中添加以下两个server配置。
测试查看结果
设置ip别名的方式
一种是修改网络配置文件ifcfg-eth0
一种是通过ifconfig和route命令进行设置
修改网络配置文件
1.3 基于IP配置Nginx虚拟主机——设置IP别名
(2)ifconfig和route命令
eth0:1用于为网络配置文件eth0设置别名,eth0后为任意正整数,取值范围为0~255;
broadcast<IP地址>用于为指定网卡设置广播协议;
netmask<子网掩码>用于设置网卡的子网掩码;
up用于启动指定的网卡,如eth0:1;
route命令的参数add,用于添加增加路由的相关参数;
-host表示其参数值连接到单个主机的路由地址;
dev用于指定该路由通过哪一块网卡连线出去,如eth0:1。
开机自启动ifconfig和route命令
由于在Linux中使用ifconfig和route命令执行的相关操作,在reboot系统后,就会自动消失。
为了解决这个问题,可以将ifconfig和route命令添加到/etc/rc.local文件中,使系统开机时就会自动运行相关操作。
(1)修改nginx.conf配置文件,在http块中添加以下两个server配置
测试
在真实的上线环境中,一个网站需要域名和公网IP地址才可以访问,但是申请域名和IP比较麻烦,且需要支付一定的费用。为了便于学习和测试,可以利用系统提供的hosts文件来设置一个虚拟的域名,并将域名解析到指定IP地址。
(1)修改hosts文件,实现网站的域名访问
小节
nginx主配置文件nginx.conf是一个纯文本类型的文件,整个配置文件是以区块的形式组织的。
每个区块以一对大括号{}来表示开始与结束。
Nginx主配置文件整体分为三块进行学习,分别是CoreModule(核心模块),EventModule(事件驱动模块),HttpCoreModule(http内核模块)
[root@linrq nginx]# vim conf/nginx.conf
http server location扩展了解项
http{}层下允许有多个Server{}层,一个Server{}层下又允许有多个Location
http{} 标签主要用来解决用户的请求与响应。
server{} 标签主要用来响应具体的某一个网站。
{} 标签主要用于匹配网站具体URL路径。
在配置文件中添加一个server如下:
server {
listen 80; #监听端口
server_name a.com; #监听域名
location / {
root a.com; #根目录定位
index index.html;
}
}
测试配置文件