Nginx是什么

Nginx是一种高性能的HTTP的web服务器,项目中我们一般使用Nginx来实现负载均衡  反向代理  动静分离等功能。Nginx的作者是俄罗斯人,他在2014年开发的。

什么是反向代理

首先说下什么是正向代理,大家想访问某个网站,但是这个网站不能直接访问,你需要通过代理服务器访问目标网站。此时我们需要在自己的电脑上配置代理服务器。

              Nginx 入门教程1

在来说说反向代理,所谓的反向代理是客户端对代理无感知的,客户端不需要进行任何的配置,我们只需要将请求发送给反向代理服务即可。代理服务器去目标服务器查找资源,然后代理服务器在将数据返回给客户端。代理服务器和目标服务器是一个服务,暴露的是代理服务器的IP地址。目标服务器的IP地址被隐藏。

 

Nginx 入门教程1

什么是负载均衡

假设我们有个在线售票系统,在线售票系统分为订单模块 节目模块 票务模块 顾客模块 基础模块。随着系统访问量的增加。有可能单个系统中的某个模块扛不住那么高的并发量,例如节目模块,当有大量的用户查看节目信息时,节目模块首先扛不住。我们可以将一个售票系统拆分成几个微服务。例如订单微服务 节目微服务 售票微服务  顾客微服务。一个节目微服务扛不住,我们可以多部署几个节目微服务。通过使用Nginx将高并发请求分发到不同的节目微服务上,减轻系统压力。

               Nginx 入门教程1

什么是动静分离

将网站中的静态资源放到单独的文件系统中。动态请求交给Tomcat进行处理。从而减轻Tomcat服务器的压力。

                   Nginx 入门教程1

 

如何安装Nginx(使用Docker安装Nginx

拉取nginx镜像    docker pull nginx

使用nginx镜像创建nginx容器     docker run --name tmp-nginx-container  -d nginx

在Linux宿主机上创建/docker/nginx文件夹   mkdir /docker/nginx

将创建的nginx容器中的nginx.conf文件拷贝到宿主机上的/docker/nginx目录下:docker cp tmp-nginx-container:/etc/nginx/nginx.conf /docker/nginx/nginx.conf

将创建的nginx容器中的html文件夹拷贝到宿主机上的/docker/nginx目录下:docker cp -a tmp-nginx-container:/usr/share/nginx/html /docker/nginx

删除创建的nginx容器 docker rm -f tmp-nginx-container

重新创建nginx容器,并且制定容器的时区,并将Nginx容器的80端口和Linux宿主机上的是8000端口进行映射,同时将Nginx容器中的目录和宿主机的目录进行挂载。docker run --name mynignx -e TZ="Asia/Shanghai" -d -p 8000:80 -v /docker/nginx/html:/usr/share/nginx/html -v /docker/nginx/nginx.conf:/etc/nginx/nginx.conf -v /docker/nginx/conf.d:/etc/nginx/conf.d -v /docker/nginx/logs:/var/log/nginx nginx

修改Linux宿主机上的nginx.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;

    server {

         listen       80;

         server_name  localhost;

         location / {

             root   /usr/share/nginx/html;

             index  index.html index.htm;

         }

         error_page   500 502 503 504  /50x.html;

         location = /50x.html {

             root   /usr/share/nginx/html;

         }

      }

}

访问地址测试nginx是否安装成功(访问自己Linux宿主机的IP地址)  http://192.168.8.132:8000

相关文章:

  • 2021-12-12
  • 2021-12-19
  • 2022-12-23
  • 2021-09-20
  • 2022-12-23
  • 2022-12-23
  • 2021-12-04
  • 2021-12-01
猜你喜欢
  • 2021-07-15
  • 2021-05-05
  • 2021-12-03
  • 2022-12-23
相关资源
相似解决方案