• Nginx基础入门


    Nginx介绍

    Nginx是一个高性能的Http和反向代理Web服务器,也提供了IMAP/POP3/SMTP服务。占内存小,可以实现高并发连接、处理响应快。

    Nginx应用

    1、Http服务器。nginx是一个Http服务可以独立提供Http服务,也可以做网页静态服务器。
    2、虚拟主机。可以实现在一台服务器虚拟出多个网站。
    3、反向代理,负载均衡。
    4、配置安全管理,比如可以使用nginx搭建API接口网关,对每个接口服务进行拦截。

    反向代理

    1、修改本地hosts文件,相当于域名服务器。

    127.0.0.1 www.feigege.com
    

    2、修改nginx.conf配置文件

    #server作用:内部创建的服务器
    server {
        #服务器监听端口
        listen   80;
        #配置拦截的域名
        server_name  www.feigege.com;
        #对所有的请求做负载均衡+反向代理
        location / {
            #代理
            proxy_pass http://127.0.0.1:8080;
            #默认页面
            index  index.html index.htm index.jsp;
            #拦截域名后:跳转的路径
            root /usr/local/tomcat/webapps/myproject/WEB-INF/page
        }
    }
    

    3、访问www.feigege.com

    负载均衡

    负载均衡,英文名称为Load Balance,其意思就是把请求,分摊到多个操作单元上进行执行。

    1、轮询负载

    upstream myserverteam{ 
        #配置节点服务   
        server 127.0.0.1:8080; 
        server 127.0.0.1:8080; 
    }
    
    server {
            listen       80;
            server_name  www.feigege.com;
            location / {
    			proxy_pass http://myserverteam;
                index  index.html index.htm index.jsp;
                #设置连接超时时,一旦超时,就认为节点宕机了。
                proxy_connect_timeout 60;
            }
    }
    

    2、权重负载

    upstream myserverteam{ 
        #配置节点服务,两节点接收到的请求比例1:3 
        server 127.0.0.1:8080 weight=1; 
        server 127.0.0.1:8080 weight=3; 
    }
    

    3、IP绑定:每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

    upstream backserver { 
        ip_hash; 
        server 127.0.0.1:8080; 
        server 127.0.0.1:8080; 
    } 
    

    Nginx跨域

    新建一个server,配置数据。

    server {
            listen       80;
            server_name  www.feigege.com;
            location /A {
    		    proxy_pass  http://myprojectOne.com:8081;
    			index  index.html index.htm;
            }
    		location /B {
    		    proxy_pass  http:/myprojectTwo.com:80821;
    			index  index.html index.htm;
            }
        }
    

    这样配置,两个项目A、B在浏览器上是用的共同的域名,在A项目中请求B项目资源,浏览器就会放行了。

    Nginx防盗链

    #~表示拦截一切请求,
    location ~ .*.(jpg|jpeg|JPG|png|gif|icon)$ {
            #验证域名
            valid_referers blocked http://www.itmayiedu.com www.itmayiedu.com;
            #验证未通过,返回403页面
            if ($invalid_referer) {
                return 403;
            }
            #缓存过期时间30天
            expires   30d;
            #是否记录访问日志
            access_log off;
    }
    

    Nginx配置DDOS

    #每两秒钟接收一个客户端IP的请求(大约等同于每分钟30个请求)
    limit_req_zone $binary_remote_addr zone=one:10m rate=30r/m;
    server {
        location /login.html {
        limit_req zone=one; 
        }
    }
    
  • 相关阅读:
    几种常见的基于Lucene的开源搜索解决方案对比
    【例子】Bobobrowse:lucene分组统计扩展组件
    Solr 相似页面MoreLikeThis
    eclipse安装、基本使用、常用设置
    iPhone开发入门守则:ObjectiveC编码规范系列教程
    ios开发学习按钮(Button)效果源码分享
    ios开发学习音频声效(Audio)效果源码分享系列教程
    ios开发学习动画(Animation)效果源码分享系列教程1
    ios开发学习图表(Chart)效果源码分享系列教程
    局网满猿关不住,一波码农出墙来。
  • 原文地址:https://www.cnblogs.com/feiqiangsheng/p/11287120.html
Copyright © 2020-2023  润新知