nginx的使用

2020-11-06  本文已影响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才是更明智的选择
反向代理用途

负载均衡配置

负载均衡(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
上一篇下一篇

猜你喜欢

热点阅读