栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Nginx学习笔记总结与案例1

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Nginx学习笔记总结与案例1

nginx学习笔记 一、简介

    什么是Nginx?

    Nginx是轻量级web服务器高性能的HTTP和反向代理服务器,也是IMAP、POP3、SMTP代理服务器

    基本功能?

    处理静态文件,索引文件以及自动索引反向代理加速负载均衡和容错动静分离

二、安装

有多个版本,根据自己系统的需要选择安装!!!

安装可参考 =》 Nginx安装

三、配置

nginx安装目录如下:

[root@VM-16-12-centos server]# cd nginx/
[root@VM-16-12-centos nginx]# ls
client_body_temp  fastcgi_temp  logs             proxy_temp_dir  sbin       uwsgi_temp        version.pl
conf              html          proxy_cache_dir  rpm.pl          scgi_temp  version_check.pl  waf

主要配置文件在conf目录下:

[root@VM-16-12-centos nginx]# cd conf/
[root@VM-16-12-centos conf]# ls
data                enable-php-56.conf  enable-php-80.conf    fastcgi_params.default  myconf.conf         scgi_params
enable-php-00.conf  enable-php-70.conf  enable-php-81.conf    koi-utf                 nginx.conf          scgi_params.default
enable-php-52.conf  enable-php-71.conf  enable-php.conf       koi-win                 nginx.conf.default  uwsgi_params
enable-php-53.conf  enable-php-72.conf  fastcgi.conf          luawaf.conf             pathinfo.conf       uwsgi_params.default
enable-php-54.conf  enable-php-73.conf  fastcgi.conf.default  mime.types              proxy.conf          vhost
enable-php-55.conf  enable-php-74.conf  fastcgi_params        mime.types.default      rewrite             win-utf

核心配置文件nginx.conf内容如下:

#用户
user  www www;

#并发能力,worker_processes的值越大,nginx的并发能力越强,根据具体服务器配置
worker_processes auto;

#错误日志的存放位置
error_log  /www/wwwlogs/nginx_error.log  crit;

#nginx的运行表示
pid        /www/server/nginx/logs/nginx.pid;
worker_rlimit_nofile 51200;

#以上统称全局块


#event块
events
    {
        use epoll;
        #worker_connections数值越大,nginx的并发能力越强
        worker_connections 51200;
        multi_accept on;
    }


#http块
http
    {
        include       mime.types;
                #include luawaf.conf;

                include proxy.conf;

        default_type  application/octet-stream;

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

        sendfile   on;
        tcp_nopush on;

        keepalive_timeout 60;

        tcp_nodelay on;

        fastcgi_connect_timeout 300;
        fastcgi_send_timeout 300;
        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 on;
        gzip_min_length  1k;
        gzip_buffers     4 16k;
        gzip_http_version 1.1;
        gzip_comp_level 2;
        gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml;
        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 3370;
         #nginx接收请求的ip
         server_name localhost;
         #开启自动定位
         autoindex on;
         #位置
         location / {
         #设置根目录
           root /opt/local; #文件目录
         }
        }

        #引入外部的配置文件=>/mine.types中存放着大量的媒体类型
        include /www/server/panel/vhost/nginx/*.conf;
}

四、正向代理

正向代理服务由客户端设立客户端了解服务器和目标服务器是是谁帮助实现突破访问权限提高访问速度,对目标服务器隐藏客户端的IP地址

五、反向代理

反向代理服务器是配置在服务端的客户端是不知道访问到底是那一台服务器可以做到负载均衡;隐藏服务器真正的IP地址

【实战】

实现效果:通过Nginx将我们的请求转发到tomcat服务器上,(下面使用docker演示)

操作:

    启动一个tomcat容器,在容器内部的webapps目录下,新建ROOT目录,在该目录下新建index.html文件,里面随意写点内容,我这里Tomcat容器的端口映射是外部服务器器3351端口映射容器的8080端口

    index.html

    I am root of tomcat-01
    

    访问Tomcat容器测试,可以看到我们是可以正常访问到ROOT目录下index.html的

    配置Nginx的代理服务

    打开Nginx安装目录下的核心配置文件:nginx.conf

    在文件的http块里增加一个server块,内容如下:

    server{
          listen 80;
          server_name localhost;
          location / {
            proxy_pass http://www.[你的域名].top:3351 ;
          }
        }
    

    上面的意思是让Nginx监听80端口,有接收到请求就转发到http://www.[你的域名].top:3351上。

    最后保存修改后的配置文件

    重启Nginx

    测试,访问服务器的80端口

    可以看到,在访问80端口时,Nginx已经帮我们把请求转发到了目标服务器,并能访问到目标服务器的内容.

    撒花!!!利用Nginx做反向代理实践完成了

六、负载均衡 策略
    轮询: 将客户端发起的请求,平均的分配给每一台服务器。权重: 会将客户端的请求,根据服务器的权重值不同,分配不同的数量。IP_hash: 基于发起请求的客户端的IP地址不同,他始终会将请求发送给指定的服务器上。

【实战】

实现效果:开启两个tomcat服务器,nginx代理实现均衡访问两个tomcat服务器

操作:

    开启两个Tomcat容器,各自在容器的根目录新建ROOT目录,然后在该目录下新建index.html,随意写点内容

    保证两个Tomcat容器能正常访问

    配置Nginx的代理服务,打开核心配置文件Nginx.conf,添加以下配置,保存重启Nginx

    #默认使用轮询策略
    upstream nodeserver{
    	server 150.158.16.123:3351 ;
    	server 150.158.16.123:3353 ;
    }
    server{
          listen 80;
          server_name 150.158.16.123;
          location / {
              proxy_pass http://nodeserver/;
          }
    }
    	
    

    测试,可以看到默认使用轮询策略,两个Tomcat容器会依次轮流访问到

    再次修改配置文件,给服务器增加一个权重,修改配置如下,保存重启

    #使用权重策略,weight越大,权重越大
    upstream nodeserver{
    	server 150.158.16.123:3351 weight=2;
    	server 150.158.16.123:3353 weight=1;
    }
    server{
          listen 80;
          server_name 150.158.16.123;
          location / {
              proxy_pass http://nodeserver/;
          }
    }
    	
    

    测试,可以看到,按照配置文件的权重,Nginx会将请求按权重分配给不同服务器

    撒花!!!负载均衡策略实践完毕!!!!

七、动静分离

定义:动静分离是一种策略,将静态资源部署在Nginx上后台项目部署到应用服务器上,根据一定的规则静态资源的请求全部请求Nginx服务器,加快响应速度,实现动静分离的效果

【实战】

实现效果: 直接用nginx映射服务器上的静态资源

操作:

    准备静态资源,这里把资源放到服务器上的/opt/local目录下

    修改Nginx的配置文件,在文件的http块里增加一个server块,内容如下:

        server{
    		#这里我用3370端口监听    
            listen 3370;
            server_name localhost;
            autoindex on;
            location / {
              root /opt/local; #静态资源的文件目录
            }
        }
    

    保存配置,重启nginx

    测试,访问服务器的3370端口,可以看到我们的文件

    在地址端口的后面增加文件名称,可以直接获取,如我访问上面test.html,可以这样

    这样用nginx做静态资源代理就好了

【踩坑提示】

在访问静态资源时你能遇到下面这个提示:

莫慌,在server块里加上autoindex on就可以解决问题了


本次学习分享到这,本次学习参考B站《千峰Java的Nginx教程》=>【千锋】Nginx教程全面讲解(Nginx快速上手)_哔哩哔哩_bilibili

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/746816.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号