目录
Nginx虚拟主机基于多端口的配置
通过不同的端口来区分不同的虚拟主机。此类虚拟主机对应的 企业应用主要为公司内部的网站。
需求
Nginx对提供8888与9999两个端口的监听服务
请求8888端口则访问html8888目录下的index.html
请求9999端口则访问html9999目录下的index.html
还原IP地址为192.168.66.100:
vim /etc/sysconfig/network-scripts/ifcfg-ens33
#将:
IPADDR0=192.168.66.100
IPADDR1=192.168.66.101
#改为
IPADDR=192.168.66.100
#重启网络服务
systemctl restart network
修改Nginx的配置文件完成基于端口的虚拟主机配置
#一个Server就是一个虚拟主机 基于端口
server {
listen 8888;
#为虚拟机指定IP或者是域名
server_name 192.168.66.100;
#主要配置路由访问信息
location / {
#用于指定访问根目录时,访问虚拟主机的web目录
root html8888;
#在不指定访问具体资源时,默认的展示资源的列表
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
#一个Server就是一个虚拟主机
server {
listen 9999;
#为虚拟机指定IP或者是域名
server_name 192.168.66.100;
#主要配置路由访问信息
location / {
#用于指定访问根目录时,访问虚拟主机的web目录
root html9999;
#在不指定访问具体资源时,默认的展示资源的列表
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
准备需要的目录和html页面
[root@node1 nginx]# cp -r html101/ html8888
[root@node1 nginx]# cp -r html101/ html9999
[root@node1 nginx]# vim html9999/index.html
<h1>Welcome to nginx 192.168.20.101:9999!
</h1>
[root@node1 nginx]# vim html8888/index.html
<h1>Welcome to nginx 192.168.20.101:8888!
</h1>
实时效果反馈
1. Nginx技术中实现基于端口的虚拟主机,使用_____指令指定端口。
A root
B server
C listen
D server_name
Nginx核心指令_root和alias指令的区别
区别
共同点 : root和alias两者都都是用来指定URI和磁盘文件的映射关系;
区别: root会将定义路径与URI叠加;而alias只取定义路径;
root示例
客户端请求www.test.com/images/1.jpg,则对应磁盘映射路径/opt/nginx/html/images/images/1.jpg
location /images {
root /opt/nginx/html/images;
index index.html index.htm;
}
注意:
也就是说使用root 请求的真实路径是 rootpath + /uri ,也就是 文件目录 + URI / 后面的内容。
alias示例
客户端请求www.test.com/images/1.jpg,则对应磁盘映射路 径/opt/nginx/html/images/1.jpg
location /images {
alias /opt/nginx/html/images/; //最后面一定要加 "/"
index index.html index.htm;
}
注意: 使用alias uri和文件路径进行了叠加,其实就是alias + 请求的文件。
实时效果反馈
1. 下列描述root指令和alias指令不正确的是____。
A alias指定的目录是准确的
B alias指令最后一定要加“ / ”
C root是指定目录的上级目录
D root是指定根目录
Nginx核心指令_return指令
return功能
1 停止处理请求,直接返回响应码或重定向到其他URL;
2 执行return指令后,location中后序指令将不会被执行;
return语法结构
1 return code [text]; # 如果返回2XX的,text才有意义,text会在body中;
2 return code URL; #主要用于重定向;
3 return URL; #须以http或者https开头的;
常用状态码:
200 请求成功
301 永久转移到其他URL
404 请求资源不存在
500 内部服务器错误
上下文
server | location | if
示例
code + text
location / {
return 200 'your success';
}
请求:
➜ nginx curl website.com
your success% //响应的内容
code + URL
#302 表示临时性重定向。访问一个Url时,被重定向到另一个url上。常#用于页面跳转。
location / {
return 302 /bbs;
}
location /bbs {
root html;
index index.html;
}
URL
直接重定向到了百度了
location / {
return http://baidu.com;
}
实时效果反馈
1. Nginx核心配置文件中return指令作用描述错误的是_____。
A 停止处理请求
B 重定向到其他URL
C 直接返回响应码
D 指定资源文件目录
2. HTTP状态码302的作用是__。
A 请求成功
B 重定向到其他URL
C 内部服务器错误
D 请求的资源(网页等不存在)