美文网首页
nginx的使用

nginx的使用

作者: 冰花水焰 | 来源:发表于2020-11-06 23:39 被阅读0次

    Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,同时也提供了IMAP/POP3/SMTP服务。

    nginx.conf配置文件

    一般我们不直接在该文件里配置我们的代理,转而使用include的方式,把我们的配置独立成另一个配置文件。

    http {
        ...
        include yumproxy.conf;//添加自己的配置文件
    }
    

    作为http服务器

    • 访问图片服务器,加载图片,访问静态资源,前后端分离

    正向代理配置

    server {
            resolver 192.168.0.1;
            location / {
                    proxy_pass http://$http_host$request_uri;
            }
    }
    
    resolver表示DNS服务器 
    location表示匹配用户访问的资源,并作进一步转交和处理,可用正则表达式匹配 
    proxy_pass表示需要代理的地址 
    $http_host 表示用户访问资源的主机部分 
    $request_uri 表示用户访问资源的URI部分。
    

    可以不设置监听端口号,nginx默认监听80端口,除非你要修改监听端口,可以用listen字段指定。
    可以看出,对于正向代理,只是对用户的访问进行一个转发,不做其他处理。
    正向代理作用
    突破访问限制:科学上网
    提高访问速度
    隐藏客户端真实ip

    参考文章

    反向代理配置

    server {
            server_name www.baidu.com;
            location / {
                    proxy_pass http://www.baidu.com/;
            }
    }
    

    其中,server_name字段用于匹配用户访问资源的主机名称。proxy_pass字段同样表示转交的访问。

    与正向代理不同,反向代理是指定了特定的网址。其实也就是限定了访问的对象。指定用户访问www.baidu.com时,只能去百度。如果你把proxy_pass的网址替换为新浪的,那就会出现用户明明要访问百度,却跑到新浪去了。这就是代理劫持了。另外,server_name可以匹配多个主机名,用空格分开即可,也可以用正则表达式匹配主机名。

    但是特别要注意一点,对于没有匹配到的访问,nginx会默认走第一条server配置,所以一般我们将第一条server设置为阻止页面。
    但是这明显不是nginx该考虑的。因为nginx的优势不在于控制访问,相比之下,squid的ACL才是更明智的选择
    反向代理用途

    • 隐藏服务器真实ip
    • 可以做负载均衡

    负载均衡配置

    负载均衡(Load Balance)其意思就是分摊到多个操作单元上进行执行
    应用程序以集群方式部署,我们需要采取负载均衡

    #设定负载均衡的服务器列表
        upstream load_balance_server {
            #weigth参数表示权值,权值越高被分配到的几率越大
            #默认 轮询
            #server 127.0.0.1:8081; 
            #server 127.0.0.1:8082;
            #server 127.0.0.1:8083;
            #weight(权重方式)
            server 192.168.1.11:80   weight=5;
            server 192.168.1.12:80   weight=1;
            server 192.168.1.13:80   weight=6;
        }
    
    

    简单配置

    server {
            listen 80;
            
            server_name manage.jt.com;
            location / {
                
                proxy_pass http://load_balance_server;
            }
        }
    

    复杂配置

    #HTTP服务器
       server {
            #侦听80端口
            listen       80;
    
            #定义使用www.xx.com访问
            server_name  www.helloworld.com;
    
            #对所有请求进行负载均衡请求
            location / {
                root        /root;                 #定义服务器的默认网站根目录位置
                index       index.html index.htm;  #定义首页索引文件的名称
                proxy_pass  http://load_balance_server ;#请求转向load_balance_server 定义的服务器列表
    
                #以下是一些反向代理的配置(可选择性配置)
                #proxy_redirect off;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
                proxy_set_header X-Forwarded-For $remote_addr;
                proxy_connect_timeout 90;          #nginx跟后端服务器连接超时时间(代理连接超时)
                proxy_send_timeout 90;             #后端服务器数据回传时间(代理发送超时)
                proxy_read_timeout 90;             #连接成功后,后端服务器响应时间(代理接收超时)
                proxy_buffer_size 4k;              #设置代理服务器(nginx)保存用户头信息的缓冲区大小
                proxy_buffers 4 32k;               #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置
                proxy_busy_buffers_size 64k;       #高负荷下缓冲大小(proxy_buffers*2)
                proxy_temp_file_write_size 64k;    #设定缓存文件夹大小,大于这个值,将从upstream服务器传
    
                client_max_body_size 10m;          #允许客户端请求的最大单文件字节数
                client_body_buffer_size 128k;      #缓冲区代理缓冲用户端请求的最大字节数
            }
        }
    

    常用配置属性

    down属性:标识宕机,如果服务器宕机,或者该服务器不想为用户继续提供服务,则可以采用down属性进行标识
    nginx访问规则:如果nginx访问的服务器不能正常响应,则等待超时后,访问新的服务器

    upstream load_balance_server {
        
      
            server 192.168.1.11:80 down;
            server 192.168.1.12:80;
            server 192.168.1.13:80;
        }
    

    backup:备用服务,默认不使用,只有在服务器全部宕机的时候,才启用

    upstream load_balance_server {
       
            server 192.168.1.11:80 backup;
            server 192.168.1.12:80;
            server 192.168.1.13:80;
        }
    

    tomcat高可用配置(简单配置)
    高可用: 当服务器发生故障时,通过某种机制可以自动的实现故障的迁移,从而使得用户不受任何的影响.

    upstream load_balance_server {
        说明:max_fails 表示失败次数,在规定的fail_timeout的时间范围之内,如果检测服务器失败则在60秒内不会将请求发往这台tomcat.
        60秒过后会再次检测.
      
            server 192.168.1.11:80 max_fails=1 fail_timeout=60s;
            server 192.168.1.12:80 max_fails=1 fail_timeout=60s;
            server 192.168.1.13:80 max_fails=1 fail_timeout=60s;
        }
    

    目前Nginx的upstream模块支持6种方式的负载均衡策略(算法):轮询(默认方式)、weight(权重方式)、ip_hash(依据ip分配方式)、least_conn(最少连接方式)、fair(第三方提供的响应时间方式)、url_hash(第三方通过的依据URL分配方式)。

    nginx linux 启动、重启、停止

    ./nginx
    ./nginx -s reload
    ./nginx -s stop

    Nginx windows常用命令

    start nginx 启动命令
    nginx -s reload :修改配置后重新加载生效
    nginx -s stop :快速停止nginx

    image.png

    相关文章

      网友评论

          本文标题:nginx的使用

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