nginx

Posted lamsey16

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx相关的知识,希望对你有一定的参考价值。

 

Nginx常用功能
1、Http代理,反向代理:作为web服务器最常用的功能之一,尤其是反向代理。

 

正向代理是电脑通过代理服务器后接入互联网进行相应的web服务访问。

反向代理是接收到网络的请求后,nginx会利用响应的规则进行匹配,匹配后转发给部署的服务进行处理。

 

 nginx.conf文件,Nginx服务器的基础配置,默认的配置也存放在此。

nginx文件结构

...    #全局块
 
events {   #events块
 ...
}
 
http  #http块
{
 ... #http全局块
 server  #server块
 { 
  ...  #server全局块
  location [PATTERN] #location块
  {
   ...
  }
  location [PATTERN] 
  {
   ...
  }
 }
 server
 {
  ...
 }
 ...  #http全局块
}

 

#1、全局块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。
#user nobody; worker_processes 1; #2、events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。 events { worker_connections 1024;#每个进程最大连接数1024 }

#3、http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。 http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65;#连接超时时间
  #4、server块:配置虚拟主机的相关参数,一个http中可以有多个server server { listen 80; server_name localhost;
    #5、location块:配置请求的路由,以及各种页面的处理情况 location / { root html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }
}

 

2.   负载均衡

如果一个服务由多条服务器提供,需要把负载分配到不同的服务器处理,需要负载均衡。

 upstream tomcat2 {

       server 192.168.25.148:8081;

       server 192.168.25.148:8082;

  }

 

可以根据服务器的实际情况调整服务器权重。权重越高分配的请求越多,权重越低,请求越少。默认是都是1

 

下面的是结合了反向代理和负载均衡的配置

#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 {
    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;

    upstream manager.e3mall.cn {
    server 192.168.25.137:8080;
    }
    upstream www.e3mall.cn {
    server 192.168.25.137:8081;
    }
    upstream search.e3mall.cn {
    server 192.168.25.137:8082;
    }
    upstream item.e3mall.cn {
    server 192.168.25.138:8080;
    }
    upstream sso.e3mall.cn {
    server 192.168.25.138:8081;
    }
    upstream cart.e3mall.cn {
    server 192.168.25.139:8080;
    }
    upstream order.e3mall.cn {
    server 192.168.25.139:8081;
    }
    
   server {
        listen       80;
        server_name  manager.e3mall.cn;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass   http://manager.e3mall.cn;
            index  index.html index.htm;
        }
    }
    server {
        listen       80;
        server_name  www.e3mall.cn;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass   http://www.e3mall.cn;
            index  index.html index.htm;
        }
    }
    server {
        listen       80;
        server_name  search.e3mall.cn;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass   http://search.e3mall.cn;
            index  index.html index.htm;
        }
    }
    server {
        listen       80;
        server_name  item.e3mall.cn;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass   http://item.e3mall.cn;
            index  index.html index.htm;
        }
    }
    server {
        listen       80;
        server_name  sso.e3mall.cn;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass   http://sso.e3mall.cn;
            index  index.html index.htm;
        }
    }
    server {
        listen       80;
        server_name  cart.e3mall.cn;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass   http://cart.e3mall.cn;
            index  index.html index.htm;
        }
    }
    server {
        listen       80;
        server_name  order.e3mall.cn;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass   http://order.e3mall.cn;
            index  index.html index.htm;
        }
    }
    

    

}

 

 

nginx可以作为反向代理和负载均衡使用,负载均衡需要配置upstream

upstream name{

ip   weight

}

 

以上是关于nginx的主要内容,如果未能解决你的问题,请参考以下文章

将 nginx rtmp 片段发送到 WebRTC

text 有用的nginx命令和片段

linux学习:Nginx--常见功能配置片段与优化-06

HLS NGINX-RTMP [错误] 1281#0:* 58 hls:强制片段拆分:10.002 秒

Nginx 跨域

Nginx配置文件详细介绍