文章目录
一、nginx简介
1,什么是nginx
Nginx 是⼀款⾼性能的 http 服务器/反向代理服务器及电⼦邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师伊⼽尔·⻄索夫(Igor Sysoev)所开发,官⽅测试 nginx 能够⽀撑 5 万并发链接,并且cpu、内存等资源消耗却⾮常低,运⾏⾮常稳定。
2,nginx应用场景
- http 服务器:Nginx 是⼀个 http 服务可以独⽴提供 http 服务。可以做⽹⻚静态服务器。
- 虚拟主机:可以实现在⼀台服务器虚拟出多个⽹站。例如个⼈⽹站使⽤的虚拟主机。
- 反向代理,负载均衡:当⽹站的访问量达到⼀定程度后,单台服务器不能满⾜⽤户的请求时,需要⽤多台服务器集群可以使⽤ nginx 做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载⾼宕机⽽某台服务器闲置的情况。
3,docker安装nginx
1,搜索nginx镜像
docker search nginx
2,拉取nginx镜像
docker pull nginx
3,创建数据卷
创建数据卷来存放nginx容器中的相关数据,这里我将数据放到/root/nginx下,在该目录下,有以下四个目录:conf、conf.d、html、logs
其中conf中存放主配置文件,conf.d中存放子配置文件,html中存放静态资源文件,logs中存放日志文件。
接着在conf目录下创建主配置文件nginx.conf,粘贴下⾯内容:
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;
include /etc/nginx/conf.d/*.conf;
}
4,创建并启动nginx容器
在nginx目录下执行以下命令:
docker run -id --name=c_nginx \
-p 80:80 \
-p 81:81 \
-p 82:82 \
-v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf \
-v $PWD/conf.d:/etc/nginx/conf.d \
-v $PWD/logs:/var/log/nginx \
-v $PWD/html:/usr/share/nginx/html \
nginx
参数说明:
- 冒号":“左边的代表的是宿主机的属性,冒号”:"右边的代表的是容器的属性
- -p : 将容器上的指定端口映射到宿主机上的指定端口
- -v : 将数据卷或其中的文件挂载到容器中指定的目录或文件上
二、nginx的使用
1,静态网站的部署
将静态资源(html页面)放到数据卷的html目录下或者放到nginx容器的/usr/share/nginx/html下即可;使用外部机器访问,默认端口是80
2,虚拟主机
所谓的nginx虚拟主机是指一个nginx容器可以提供多个端口,并且不同的端口可以对应不同的访问域名,同时对应不同的访问路径;