nginx使用详解

1、什么是Nginx

Nginx 是⼀款⾼性能的 http 服务器 / 反向代理服务器及电⼦邮件( IMAP/POP3 )代理服务器。由俄罗斯 的程序设计师伊⼽尔· ⻄索夫( Igor Sysoev )所开发,官⽅测试 nginx 能够⽀⽀撑 5 万并发链接,并且 cpu、内存等资源消耗却⾮常低,运⾏⾮常稳定。

2.Nginx应⽤场景:

1 http 服务器。 Nginx 是⼀个 http 服务可以独⽴提供 http 服务。可以做⽹⻚静态服务器。
静态资源 上传到服务器的 /usr/local/nginx/html 下即可访问
2 虚拟主机。可以实现在⼀台服务器虚拟出多个⽹站。例如个⼈⽹站使⽤的虚拟主机。
在作为http服务器的基础上通过端口绑定或域名绑定实现在一台服务器上访问不同的网站
3 、反向代理,负载均衡。当⽹站的访问量达到⼀定程度后,单台服务器不能满⾜⽤户的请求时,需要⽤ 多台服务器集群可以使⽤ nginx 做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器 负载⾼宕机⽽某台服务器闲置的情况。

虚拟主机之端口绑定

1.docker 容器拉取nginx镜像

2.创建容器挂载目录,在挂载目录中编辑nginx的基础配置文件

# 在/root⽬录下创建nginx⽬录⽤于存储nginx数据信息
mkdir ~/nginx
cd ~/nginx
mkdir conf
cd conf
# 在~/nginx/conf/下创建nginx.conf⽂件,粘贴下⾯内容
vim 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; #读取conf.d下的任意conf文件(每个容器的配置文件)
}

3.端口映射和目录映射创建nginx容器:(3个端口号演示端口绑定)

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

4.在~/nginx/conf.d/创建**.conf文件(这里以80.conf为例),在这个文件里配置每个端口号的访问路径

server {
 listen 80; # 监听的端⼝
 server_name localhost; # 域名或ip
 location / { # 访问路径配置
 root /usr/share/nginx/html;# 根⽬录
 index index.html index.htm; # 默认⾸⻚
 }
 error_page 500 502 503 504 /50x.html; # 错误⻚⾯
 location = /50x.html {
 root html;
 }
}
server {
 listen 81; # 监听的端⼝
 server_name localhost; # 域名或ip
 location / { # 访问路径配置
 root /usr/share/nginx/index;# 根⽬录
 index index.html index.htm; # 默认⾸⻚
 }
 error_page 500 502 503 504 /50x.html; # 错误⻚⾯
 location = /50x.html {
 root html;
 }
 }
 server {
 listen 82; # 监听的端⼝
 server_name localhost; # 域名或ip
 location / { # 访问路径配置
 root /usr/share/nginx/regist;# 根⽬录
 index regist.html; # 默认⾸⻚
 }
 error_page 500 502 503 504 /50x.html; # 错误⻚⾯
 location = /50x.html {
 root html;
 }
 }

5.往容器里的访问路径/usr/local/nginx/**里面放入静态资源文件,例(/usr/share/nginx/regist)

(思路:可以进容器内新建或在容器外建好复制到容器内,这里演示在容器外复制)

mkdir regist
cd regist #然后写入或放入静态资源文件
cd ../

docker cp ./regist/ c_nginx:/usr/share/nginx/ #复制到容器

进入容器静态资源目录可以看到这3个文件

6.访问ip+端口号,得到三个不同的页面

虚拟主机之域名绑定

 其特点是ip相同,端口号相同,域名不同(相同ip配置不同的域名)

本地测试可以修改 hosts ⽂件( C:\Windows\System32\drivers\etc

 配置步骤基本同端口绑定,绑定相同的端口,不同的域名就可以

nginx之反向代理(相同的资源保存到不同服务器对应的挂载目录内)

 在挂载目录tomcat(3个都放入)下ROOT目录下放入要实现负载均衡的资源

在容器配置文件conf.d中配置负载均衡

 这时当用户访问www.huike的的时候,三个tomcat服务就会轮流使用

如果想让某个服务器承受更多访问,使用weight=2变成2倍

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

塔◎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值