1. nginx在企业中实际应用
1) 企业中实现多个网站配置
实现多个网站在一台服务器上配置==>实现多个虚拟主机==>实现多个server区块配置
第一个历程: 编写多个server配置文件
[root@web01 html]# cd /etc/nginx/conf.d/
[root@web01 conf.d]# ll
total 12
-rw-r--r-- 1 root root 127 Mar 12 12:17 www.conf
www网站虚拟主机
[root@web01 conf.d]# cat www.conf
server {
listen 80;
server_name www.oldgirl.com;
location / {
root /html/www;
index index.html;
}
}
bbs网站虚拟主机配置
server {
listen 80;
server_name bbs.oldgirl.com;
location / {
root /html/bbs;
index index.html;
}
}
blog网站虚拟主机配置
[root@web01 conf.d]# cat blog.conf
server {
listen 80;
server_name blog.oldgirl.com;
location / {
root /html/blog;
index index.html;
}
}
第二个历程: 创建站点目录并编写站点目录代码文件
mkdir /html/{www,bbs,blog} -p
[root@web01 conf.d]# mkdir /html/{www,bbs,blog} -p
[root@web01 conf.d]# for name in www bbs blog;do echo $name.oldgirl.com_web01 >/html/$name/index.html;done
[root@web01 conf.d]# tree /html/
/html/
├── bbs
│?? └── index.html
├── blog
│?? └── index.html
├── index.html
├── oldboy.jpg
└── www
└── index.html
3 directories, 5 files
[root@web01 conf.d]# for name in www bbs blog;do cat /html/$name/index.html;done
www.oldgirl.com_web01
bbs.oldgirl.com_web01
blog.oldgirl.com_web01
第三个历程: 重启nginx服务
[root@web01 conf.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@web01 conf.d]# systemctl reload nginx
第四个历程: 进行访问测试
windows: 在windows主机中修改hosts
linux: 在linux主机上修改hosts
[root@web01 conf.d]# curl www.oldgirl.com
www.oldgirl.com_web01
[root@web01 conf.d]# curl bbs.oldgirl.com
bbs.oldgirl.com_web01
[root@web01 conf.d]# curl blog.oldgirl.com
blog.oldgirl.com_web01
2.企业中实现页面显示站点目录结构(WEB服务-->文件服务器)
- 准备目录结构环境
[root@lixin /usr/share/nginx/html]# mkdir li{01..05}
- 编写配置文件
[root@lixin /etc/nginx/conf.d]# vim www.conf
server {
listen 80;
server_name www.laoli.com;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
autoindex on;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
~
注意:只有当默认首页文件不存在时,autoindex on;指令功能才能生效
image.png
2.1 如何让目录索引结构中可以显示中文信息
charset UTF-8; 实现网页信息中文显示
[root@lixin /etc/nginx/conf.d]# vim www.conf
server {
listen 80;
server_name www.laoli.com;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
autoindex on;
charset UTF-8;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
[root@lixin /usr/share/nginx/html]# mkdir 老李头
[root@lixin /usr/share/nginx/html]# ll
total 8
-rw-r--r-- 1 root root 494 Apr 23 22:36 50x.html
-rw-r--r-- 1 root root 14 Jul 21 11:08 index.html.ori
drwxr-xr-x 2 root root 6 Jul 21 11:10 li01
drwxr-xr-x 2 root root 6 Jul 21 11:10 li02
drwxr-xr-x 2 root root 6 Jul 21 11:10 li03
drwxr-xr-x 2 root root 6 Jul 21 11:10 li04
drwxr-xr-x 2 root root 6 Jul 21 11:10 li05
drwxr-xr-x 2 root root 6 Jul 21 11:22 老李头
image.png
2.3 如何全局让目录索引结构中可以显示中文信息
将指令信息放在HTTP区块
官方:nginx.org
3.如何理解媒体资源类型文件
/etc/nginx/mime.types;
a) 在媒体资源类型文件中定义的资源信息,才能被nginx识别为静态信息,进行处理
b) 在媒体资源类型文件中没有定义的资源,会进行下载处理
4.企业中虚拟主机配置方式
a) 基于域名配置方式 *****
[root@lixin /etc/nginx/conf.d]# vim www.conf
server {
listen 80;
server_name www.laoli.com;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
autoindex on;
charset UTF-8;
}
}
b) 基于端口配置方式
[root@lixin /etc/nginx/conf.d]# vim www.conf
server {
listen 8080;
server_name www.laoli.com;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
autoindex on;
charset UTF-8;
}
}
[root@lixin /etc/nginx/conf.d]# netstat -lntup|grep nginx
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 7834/nginx: master
补充:用户访问网站流程
1.用户打开浏览器输入网站按下回车
2.进行域名解析 www.laoli.com ---- 10.0.0.41
3.利用解析地址进行访问(建立三次握手)
4.发送HTTP请求报文
hosts:www.laoli.com
访问服务端口信息:8080 (如果不手动添加,默认访问80)
5.服务端接收HTTP请求,进行分析处理
1.检查端口是否存在
2.那些虚拟主机监听了80端口
3.检查请求的hosts信息是否和监听端口匹配server主机信息是否一致
特殊情况:当请求的hosts信息,当域名和端口号都不一致时,呢么显示符合端口要求的加载第一个虚拟主机的页面信息
6.进行HTTP响应报文发送
c) 基于IP地址的访问 ---负载均衡访问
[root@lixin /etc/nginx/conf.d]# cat www.conf
server {
listen 172.16.1.7:80;
server_name www.laoli.com;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
autoindex on;
charset UTF-8;
}
}
PS: 在nginx中涉及监听IP地址的修改, 需要重启nginx服务,不能采用平滑重启