nginx

作者: 名字是乱打的 | 来源:发表于2020-02-19 17:24 被阅读0次

    题外话:阿里云免费送了一年服务器,项目部署上去了,域名也有了,但是还少了一个反向代理和web容器工具🤭于是乎nginx的学习十分必要了
    发现自己的学习,除了最开始的很系统的从底向上从顶到底学了一遍JAVA,后来自己都是有需求就研究研究诶.


    1.什么是nginx,nginx?

    • Nginx是一个高性能的Web和反向代理服务器,它具有有很多非常优越的特性:作为Web服务器:相比Apache,Nginx使用更少的资源,支持更多的并发连接,体现更高的效率,这点使Nginx尤其受到虚拟主机提供商的欢迎。能够支持高达50000个并发连接费的响应,感谢Nginx为我们选择了epoll and kqueue作为开发模型.
    • 作为负载均衡服务器:Nginx既可以在内部直接支持Rails和PHP,也可以支持作为HTTP代理服务器对外进行服务。Nginx用C编写,不论是系统资源开销还是CPU使用效率都比Perlbal要好的多
    • 作为邮件代理服务器:Nginx同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last.fm描述了成功并且美妙的使用经验。

    优点
    Nginx安装非常的简单,配置文件非常简洁(还能够支持per语法),Bugs非常少的服务器:Nginx启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够在不间断服务的情况下进行软件版本的升级。

    nginx可以作为web服务器,但更多的时候,我们把它作为网关
    为啥?因为网关有的功能,它都可以做到,如下....而且优点上面都介绍清楚了.

    • 反向代理
    • 负载均衡
    • 动态路由
    • 请求过滤

    2. web服务器类别

    • web应用服务器 (可以解析jsp和静态html css js等 )并发能力低
      • jetty
      • resin
      • tomcat (200并发)
    • web服务器 不能解析jsp但是并发能力高
      • apache服务器
      • nginx(目前最流行,可以达到5W并发)
      • IIS(微软的,功能挺多的,在window server服务器上比较流行(内置IIS,天然集成,占用80端口))

    3. 代理与反向代理

    4.nginx的负载均衡

    Nginx提供的负载均衡策略有2种:内置策略和扩展策略。
    内置策略为轮询,加权轮询,Ip hash
    扩展策略,就天马行空,只有你想不到的没有他做不到的啦,你可以参照所有的负载均衡算法,给他一一找出来做下实现。

    上3个图,理解这三种负载均衡算法的实现


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

    4.nginx如何当做反向代理服务器来使用?

    • 我们需要提前在nginx中配置好反向代理的规则,不同的请求,交给不同的真实服务器处理
    • 当请求到达nginx,nginx会根据已经定义的规则进行请求的转发,从而实现路由功能 及其适合微服务项目,大量端口需要路由

    5.nginx下载

    参考https://www.cnblogs.com/xxoome/p/5866475.html
    下载解压好了,这里看以下nginx里有啥玩意

    • conf毫无疑问是配置目录
    • contrib是依赖
    • html默认静态页面
    首先进入conf配置咱们的nginx

    vi进入后编辑,这里以注释的方式解读一下配置

    #user  nobody;
    worker_processes  1; //工作进程数(处理请求的进程)(通常不大于服务器核数)
    
    #error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;
    
    #pid        logs/nginx.pid;
    
    
    events {
        worker_connections  1024;//工作连接数-线程数
    }
    
    
    http { //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"';
    
        #access_log  logs/access.log  main;
    
        sendfile        on;//是否开启文件上传功能
        #tcp_nopush     on;
    
        #keepalive_timeout  0;
        keepalive_timeout  65;//连接最大时间
    
        #gzip  on;
    
        server {//一个server就是一个代理
            listen       80;//监听的服务端口
            server_name  localhost;//这个主机的都默认转到80端口
    
            #charset koi8-r;
    
            #access_log  logs/host.access.log  main;
    
            location / {
                root   html;
                index  index.html index.htm;
            }
    
            #error_page  404              /404.html;
    
            # redirect server error pages to the static page /50x.html
            #
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
    
            # proxy the PHP scripts to Apache listening on 127.0.0.1:80
            #
            #location ~ \.php$ {
            #    proxy_pass   http://127.0.0.1;
            #}
    
            # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
            #
            #location ~ \.php$ {
            #    root           html;
            #    fastcgi_pass   127.0.0.1:9000;
            #    fastcgi_index  index.php;
            #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            #    include        fastcgi_params;
            #}
    
            # deny access to .htaccess files, if Apache's document root
            # concurs with nginx's one
            #
            #location ~ /\.ht {
            #    deny  all;
            #}
        }
    
    

    参考:👇👇👇👇

    菜鸟教程Nginx
    nginx中文文档
    Nginx 配置文件详解
    运行和控制Nginx
    nginx域名配置
    前端项目发布到nginxweb服务器

    相关文章

      网友评论

          本文标题:nginx

          本文链接:https://www.haomeiwen.com/subject/sdhnfhtx.html