基于Docker部署并试用Nginx主要功能
1 Web服务器功能
1.1 基于域名访问
1.1.1 需求说明
- 局域网内部有A和B两个网站,利用Nginx可以做为Web服务器的功能,把这两个网站部署到同一台Nginx类型的Web服务器上,并在Nginx中设置按域名来访问这两个网站,其中对域名
aaa.test.com
的访问请求由A网站处理,对域名bbb.test.com
的访问请求由B网站处理。 - 在Ubuntu中部署一个Nginx的Docker容器,该容器即为Nginx Web服务器,其中A网站部署在Nginx Web服务器的
/usr/local/html/aaa
目录下,B网站部署在Nginx Web服务器的/usr/local/html/bbb
目录下。
1.1.2 准备工作
- 在ubuntu的
/mnt/share/config/nginx/web/aaa
目录下创建一个index.html网页文件,该文件表示A网站主页,其内容如下:<html> <head> <title>index</title> </head> <body> <b2>This is aaa index page</b2> </body> </html>
- 在ubuntu的
/mnt/share/config/nginx/web/bbb
目录下创建一个index.hmtl网页文件,该文件表示B网站主页,其内容如下:<html> <head> <title>index</title> </head> <body> <b2>This is bbb index page</b2> </body> </html>
1.1.3 实战过程
-
在
ubuntu的/mnt/share/config/nginx
目录下创建名称为nginx.conf的配置文件,该配置文件会被用于Nginx服务器,其内容如下:user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; server { listen 80; server_name aaa.test.com; location / { root /usr/local/html/aaa; index index.html; } } server { listen 80; server_name bbb.test.com; location / { root /usr/local/html/bbb; index index.html; } } }
-
在ubuntu中运行以下docker命令以创建nginx服务器:
docker run -d -p 80:80 \ -v /mnt/share/config/nginx/nginx.conf:/etc/nginx/nginx.conf:ro \ -v /mnt/share/config/nginx/web:/usr/local/html \ --name nginx --restart always nginx:1.18.0
-
在windows的
C://Windows/System32/drivers/etc/host
文件中加上以下DNS映射配置。说明:本文ubuntu虚拟机的ip地址为192.168.1.238,请换成读者自己的虚拟机的ip地址
。192.168.1.238 aaa.test.com 192.168.1.238 bbb.test.com
1.1.4 功能测试
- 在windows浏览器中访问
http://aaa.test.com
,如果显示的页面如下图所示,则表示访问的是A网站。
- 在windows浏览器中访问 http://bbb.test.com ,如果显示的页面如下图所示,则表示访问的是B网站。
1.2 基于端口访问
1.2.1 需求说明
- 局域网内部有A和B两个网站,利用Nginx可以做为Web服务器的功能,把这两个网站部署到同一台Nginx类型的Web服务器上,并在Nginx中设置按端口来访问这两个网站,其中对端口
8081
的访问请求由A网站处理,对端口8082
的访问请求由B网站处理。 - 在Ubuntu中部署一个Nginx的Docker容器,该容器即为Nginx Web服务器,其中A网站部署在Nginx Web服务器的
/usr/local/html/aaa
目录下,B网站部署在Nginx Web服务器的/usr/local/html/bbb
目录下。
1.2.2 准备工作
- 在ubuntu的
/mnt/share/config/nginx/web/aaa
目录下创建一个index.html网页文件,该文件表示A网站主页,其内容如下:<html> <head> <title>index</title> </head> <body> <b2>This is aaa inde