Nginx学习

1. Nigix简介

1.1 什么是 Nginx?

Nginx是一个高性能的HTTP和反向代理web服务器(随着客户端逐渐增多,一台服务器根本承载不了,因此需要有多台服务器,这时候就需要一台代理服务器来对多个客户端请求对应到多个服务器。)。
其特点是占有内存少,并发能力强。
Nginx是一个安装非常简单、配置文件非常简洁、Bug非常少的服务。Nginx启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数几个月也不需要重新启动。官方数据测试表明能够支持高达50000个并发连接数的响应。

1.2 Nginx的作用?

Http代理,反向代理。

1.3 正向代理和反向代理

正向代理:在客户端和原始服务器之间架设一个代理服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标,然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。
在这里插入图片描述
反向代理:以代理服务器来接受网络上的连接请求,然后将请求转发给内部网络上的服务器,并将服务器上得到的结果返回给请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。客户端无需做任何配置。
在这里插入图片描述
多台服务器通过同一代理服务器地址来访问!

共同点:

  • 都是做为服务器和客户端的中间层。
  • 都可以加强内网的安全性,阻止 Web 攻击。
  • 都可以做缓存机制,提高访问速度。

区别:

  • 正向代理其实是客户端的代理,反向代理则是服务器的代理。
  • 正向代理中,服务器并不知道真正的客户端到底是谁;而在反向代理中,客户端也不知道真正的服务器是谁。
  • 作用不同。正向代理主要是用来解决访问限制问题;而反向代理则是提供负载均衡、安全防护等作用

在前后端分离的网站架构中,服务器经常要配置反向代理,使前端通过固定地址访问后端接口,这样后端服务可以采取负载均衡等性能优化措施,对前端应用透明。

1.4 Windows上安装Nginx

下载地址:https://nginx.org/en/download.html

启动nginx:

在这里插入图片描述

启动成功:

在这里插入图片描述

1.5 Linux上安装Nginx

首先下载:
在这里插入图片描述
然后通过xftp 上传到 虚拟机,然后解压
解压后进入文件夹执行如下指令:

# 安装nginx相关依赖包
yum install pcre-devel zlib zlib-devel openssl openssl-devel
# 安装后验证
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module
# 编译和安装
make && make install 

然后通过whereis nginx 指令找到nginx位置,切到对应目录。
进入sbin,执行./nginx

注意还需要开放端口!
在这里插入图片描述
启动成功:
在这里插入图片描述

2. Nginx常用命令

./nginx  启动
./nginx -s stop  停止
./nginx -s quit  安全退出
./nginx -s reload  重新加载配置文件
ps aux|grep nginx  查看nginx进程

配置文件中的大致配置如下:
在这里插入图片描述
比如说我们想要能够用nginx访问80端口达到两台服务器上,并且用户无感知。这时候就要在80端口的server下作代理
在这里插入图片描述

docker 部署nginx

version: "3"
services:
  nginx:
    image: nginx:latest
    container_name: nginx
    hostname: nginx
    volumes: // 数据卷挂载
      - ../html:/usr/share/nginx/html // 将当前目录上一目录下的html文件夹 挂载到 容器中的 /usr/share/nginx/html 目录,容器中不存在此目录时会创建。已存在此目录时会覆盖
      - ./nginx.conf:/etc/nginx/nginx.conf // 将当前目录下的 nginx.conf 文件挂载到 容器中的 /etc/nginx/nginx.conf,容器中不存在此文件时会创建,已存在此目录时会覆盖
    ports:
      - "80:80"
    restart: always // 每次容器启动时都自动启动 nginx

上面挂载 html 是为了修改 nginx 初始展示页面,使其展示为我们自定义的页面。
本机编写的 nginx.conf 为:

user  root;
worker_processes  1;
events {
    worker_connections  1024;
}

http {
    include       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"';
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen         80;
        location / {
            root   /usr/share/nginx/html; // 当访问80端口时,会去容器中此位置展示 index.html。这与上面我们在主机与容器挂载 html 位置是一致的!
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
    }
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

henulmh

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

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

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

打赏作者

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

抵扣说明:

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

余额充值