当前位置:   article > 正文

Nginx详解-安装配置等

Nginx详解-安装配置等

目录

一、引言

1.1 代理问题

1.2 负载均衡问题

1.3 资源优化

1.4 Nginx处理

二、Nginx概述

三、Nginx的安装

3.1 安装Nginx

3.2 Nginx的配置文件

四、Nginx的反向代理【重点】

4.1 正向代理和反向代理介绍

4.2 基于Nginx实现反向代理

4.3 关于Nginx的location路径映射


 

一、引言


1.1 代理问题

客户端到底要将请求发送给哪台服务器。

发送给服务器1还是服务器2
1.2 负载均衡问题

如果所有客户端的请求都发送给了服务器1,那么服务器2将没有任何意义

负载均衡问题

1.3 资源优化

客户端发送的请求可能是申请动态资源的,也有申请静态资源,但是都是去Tomcat中获取的

静态资源访问

1.4 Nginx处理
在搭建集群后,使用Nginx

二、Nginx概述


Nginx是由俄罗斯人研发的,应对Rambler的网站,并且2004年发布的第一个版本。

Nginx之父

官方文档 nginx 

Nginx的特点:

  • 俄罗斯生产,底层C语言

  • 稳定性极强。 7*24小时不间断运行。

  • Nginx提供了非常丰富的配置实例。

  • 占用内存小,并发能力强。

  • 单机可扛5万并发

其他软负载均衡器

​ lvs:国产,章文松博士开发,性能优于nginx,性能较单一

硬负载均衡器

硬件,价格昂贵,性能高,每秒以GB为单位接收请求

​ 常用品牌:f5,netscaler等等

三、Nginx的安装


nginx容器内部路径

​ /usr/share/nginx/html: 存放静态资源​ /etc/nginx/nginx.conf : nginx的配置文件(配置静态资源 ,反向代理信息, 负载均衡)​ var/log/nginx:记录日志

3.1 安装Nginx

使用docker命令安装nginx

注意:如果没有这个文件,是不能挂载的,所以需要先在centos指定位置复制一个nginx.conf。 我们可以先随便创建一个nginx,容器中会包含nginx.conf , 同时也可以看到nginx容器内目录结构。

  1. docker run -id --name docker-nginx
  2. -v /opt/docker-nginx/data/conf/nginx.conf:/etc/nginx/nginx.conf
  3. -v /opt/docker-nginx/data/html:/usr/share/nginx/html
  4. -p 81:80 daocloud.io/library/nginx:latest

使用Docker-Compose安装

docker-compose-nginx.yml 文件

  1. version: '3.1'
  2. services:
  3. nginx:
  4.   restart: always
  5.   image: daocloud.io/library/nginx:latest
  6.   container_name: nginx3
  7.   ports:
  8.     - 82:80
  9.   volumes:
  10.     - /opt/docker-nginx/data/conf/nginx.conf:/etc/nginx/nginx.conf
  11.     - /opt/docker-nginx/data/log:/var/log/nginx
  12.     - /opt/docker-nginx/data/html:/usr/share/nginx/html
  13. tomcat:
  14.   restart: always
  15.   image: daocloud.io/library/tomcat:8.5.15-jre8
  16.   container_name: nginx-tomcat
  17.   ports:
  18.     - 9091:8080
  19.   volumes:
  20.     - /var/lib/docker/volumes/olumes/_data:/usr/local/tomcat/webapps/ROOT  

使用compose构建容器

docker-compose -f 文件名 up -d

3.2 Nginx的配置文件

关于Nginx的核心配置文件nginx.conf

  1. worker_processes  1;
  2. error_log  /var/log/nginx/error.log warn;
  3. # 以上统称为全局块,
  4. # worker_processes他的数值越大,Nginx的并发能力就越强
  5. # error_log 代表Nginx的错误日志存放的位置
  6. events {
  7.    worker_connections  1024;
  8. }
  9. # events块
  10. # worker_connections他的数值越大,Nignx并发能力越强
  11. http {
  12.    include       /etc/nginx/mime.types;
  13.    default_type  application/octet-stream;
  14.    server {
  15.        listen       80;
  16.        server_name  localhost;
  17.        location / {
  18.            root   /usr/share/nginx/html;
  19.            index  index.html index.htm;
  20.       }
  21. # location块
  22. # root:将接收到的请求根据/usr/share/nginx/html去查找静态资源
  23. # index: 默认去上述的路径中找到index.html或者index.htm
  24.   }
  25. # server块
  26. # listen: 代表Nginx监听的端口号
  27. # localhost:代表Nginx接收请求的ip
  28. }
  29. # http块
  30. # include代表引入一个外部的文件 -> /mime.types中放着大量的媒体类型
  31. # include /etc/nginx/conf.d/*.conf; -> 引入了conf.d目录下的以.conf为结尾的配置文件

四、Nginx的反向代理【重点


4.1 正向代理和反向代理介绍

正向代理:

  • 正向代理服务是由客户端设立的。

  • 客户端了解代理服务器和目标服务器都是谁。

  • 帮助咱们实现突破访问权限,提高访问的速度,对目标服务器隐藏客户端的ip地址。

正向代理

反向代理:

  • 反向代理服务器是配置在服务端的。

  • 客户端是不知道访问的到底是哪一台服务器。

  • 达到负载均衡,并且可以隐藏服务器真正的ip地址。

4.2 基于Nginx实现反向代理

准备一个目标服务器。

启动了之前的tomcat服务器。

编写nginx的配置文件,通过Nginx访问到tomcat服务器。

  1. server{
  2.  listen 80;
  3.  server_name localhost;
  4.    # 基于反向代理访问到Tomcat服务器
  5.  location / {
  6.    # 注意:ip是tomcat内部ip地址, 端口号也是tomcat的内部端口号
  7.    proxy_pass http://你的地址:8080/;
  8. }
  9. }

4.3 关于Nginx的location路径映射

优先级关系如下:

  • location = /路径:优先级最高,精准匹配,一旦匹配, 不再去找其他匹配项。

  • location ^~ /路径:优先级次之,字符串匹配,一旦匹配, 不再去找其他匹配项。

  • location ~ 正则表达式:如果有多个location的正则能匹配的话,则使用正则表达式最长的那个。

  • location ~* 正则表达式:和location ~ 正则表达式相同,不过当前方式不区分大小写。

  • location /路径:常规方式,匹配前缀,优先级最低。

举个栗子:

  1. # 直接匹配
  2. location = / {
  3.  # 精准匹配,主机名后面不能带任何的字符串
  4. }
  5. # 常规匹配
  6. location /xxx {
  7.  # 匹配所有以/xxx开头的路径
  8.  
  9. }
  10. # 正则匹配
  11. location ~ /xxx {
  12.  # 匹配所有以/xxx开头的路径
  13. }
  14. # 匹配开头路径
  15. location ^~ /images/ {
  16.  # 匹配所有以/images开头的路径,匹配后,不再删选其他选项
  17. }
  18. # 正则匹配后缀
  19. location ~* \.(gif|jpg|png)$ {
  20.  # 匹配以gif或者jpg或者png为结尾的路径
  21. }
  22. # 全部通配
  23. location / {
  24.  # 匹配全部路径  
  25. }

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号