Nginx

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

一、什么是 Nginx

Nginx功能丰富可作为HTTP服务器 也可作为反向代理服务器邮件服务器。支持FastCGI、SSL、Virtual Host、URL Rewrite、Gzip等功能。并且支持很多第三方的模块扩展。

1. nginx 的常用功能

1. http 反向代理

在这里插入图片描述

  • nginx在做反向代理时提供性能稳定并且能够提供配置灵活的转发功能。
  • nginx可以根据不同的正则匹配采取不同的转发策略比如图片文件结尾的走文件服务器动态页面走web服务器。
  • nginx对返回结果进行错误页跳转异常判断等。如果被分发的服务器存在异常它可以将请求重新转发给另外一台服务器然后自动去除异常服务器。

2. 负载均衡

在这里插入图片描述在这里插入图片描述

nginx提供的负载均衡策略有2种内置策略和扩展策略。

内置策略为轮询加权轮询Ip hash 。

Ip hash算法对客户端请求的 ip 进行 hash 操作然后根据hash结果将同一个客户端 ip 的请求分发给同一台服务器进行处理可以解决 session 不共享的问题。

二、nginx.conf 配置文件

1. nginx 配置文件主要分成四部分

  • main全局设置
  • server主机设置
  • upstream上游服务器设置主要为反向代理、负载均衡相关配置
  • locationURL匹配特定位置后的设置

每部分包含若干个指令

  • main 部分设置的指令将影响其它所有部分的设置
  • server 部分的指令主要用于指定虚拟主机域名、IP和端口
  • upstream 的指令用于设置一系列的后端服务器设置反向代理及后端服务器的负载均衡
  • location 部分用于匹配网页位置比如根目录"/“,”/images",等等

在这里插入图片描述

server继承mainlocation继承serverupstream既不会继承指令也不会被继承。它有自己的特殊指令不需要在其他地方的应用

每个部分的主要功能

  • 开头配置影响nginx全局的指令。一般有运行nginx服务器的用户组nginx进程pid存放路径日志存放路径配置文件引入允许生成worker process数等。

  • events配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数选取哪种事件驱动模型处理连接请求是否允许同时接受多个网路连接开启多个网络连接序列化等。

  • http可以嵌套多个server配置代理缓存日志定义等绝大多数功能和第三方模块的配置。如文件引入mime-type定义日志自定义等。

  • server配置虚拟主机的相关参数一个http中可以有多个server。

  • location配置请求的路由以及各种页面的处理情况。

2. 配置文件解释

user www www;  # 配置用户或者组
worker_processes auto; # 允许生成的进程数默认为1
error_log  /www/wwwlogs/nginx_error.log  crit; # 指定日志路径级别。
pid        /www/server/nginx/logs/nginx.pid; # 指定 nginx 进程运行文件存放地址
worker_rlimit_nofile 51200; # 配置 worker 进程最大打开文件数

events
    {
        use epoll; # 事件驱动模型
        worker_connections 51200; # 最大连接数默认为 512
        multi_accept on; # 设置一个进程是否同时接受多个网络连接默认为 off
    }

http
    {
        include mime.types; # 文件扩展名与文件类型映射表
              
        include proxy.conf; # include 指令用于包含拆分的配置文件

        default_type  application/octet-stream; # 默认文件类型默认为text/plain

        server_names_hash_bucket_size 512;
        client_header_buffer_size 32k;
        large_client_header_buffers 4 32k;
        client_max_body_size 50m;

        sendfile   on; # 允许 sendfile 方式传输文件默认为 off
        keepalive_timeout 65;  #连接超时时间默认为75s
        tcp_nopush on;
        tcp_nodelay on;

        fastcgi_read_timeout 300;
        fastcgi_buffer_size 64k;
        fastcgi_buffers 4 64k;
        fastcgi_busy_buffers_size 128k;
        fastcgi_temp_file_write_size 256k;
        fastcgi_intercept_errors on;

        # gzip压缩功能设置
        gzip on;
        gzip_min_length  1k;
        gzip_buffers     4 16k;
        gzip_http_version 1.1;
        gzip_comp_level 2;
        gzip_vary on;
        gzip_proxied   expired no-cache no-store private auth;
        gzip_disable   "MSIE [1-6]\.";

        limit_conn_zone $binary_remote_addr zone=perip:10m;
        limit_conn_zone $server_name       zone=perserver:10m;

        server_tokens off;
        access_log off;
    
        server
            {
                listen 888;
                server_name phpmyadmin; # 监听地址   
                index index.html index.htm index.php; # 设置默认页
                root  /www/server/phpmyadmin; # 根目录

                #error_page   404   /404.html;
                include enable-php.conf;
                
                # 请求的url过滤正则匹配
                location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
                {
                    expires 30d; # 缓存30天
                }

                location ~ .*\.(js|css)?$
                {
                    expires 12h;
                }

                location ~ /\.
                {
                    deny all; # 拒绝的ip
                }

                access_log  /www/wwwlogs/access.log;
            }
    include /www/server/panel/vhost/nginx/*.conf;
    }

三、nginx 静态资源服务器配置

通过nginx访问静态文件配置都是在server模块中进行配置

1. 通过 root 重定向

server{
    listen 5000;
    server_name 127.0.0.1;
    location /images/ {
        root /home/www/static_resources/;
    }
}

2. 通过 alias 重定向

server{
    listen 5001;
    server_name 127.0.0.1;
    location /images/ {
        root /home/www/static_resources/;
    }
}

现在访问http://127.0.0.1:5000/images/1.png则访问服务器的文件是 /home/www/static_resources/1.png

相当于把服务器上的某个路径通过某个端口暴露给所有人

所有人通过访问该IP下的该端口就可以访问服务器上的那个路径下的资源

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: nginx