nginx.conf集群环境配置详解

发布时间:2020-03-31编辑:脚本学堂
本文介绍了nginx.conf集群环境配置的方法,使用nginx配置负载均衡系统架构服务器集群,包括了防盗链与日志等内容,需要的朋友参考下。

nginx.conf 集群完整配置文件,内容如下:
 

#user  nobody;                  # user 主模块指令,指令nginx worker 运行用户和用户组(user xxxuser xxxgroup) ,默认由nobody运行 
worker_processes  1;            # worker_processes 主模块指令,指令nginx运行进程数,每个进程平均耗10m-12m内存,单核为1,多核为n 
 
#error_log  logs/error.log;     # 全局日志 输出级别debug,info,notice,warn,error,crit ,其中debug输出日志最为详细 
#error_log  logs/error.log  notice; #级别 notice 
#error_log  logs/error.log  info;   #级别 info 
 
#pid  logs/nginx.pid;     #pid 指令  指定进程id存储位置 
 
events { 
    worker_connections  1024;   #events 指令 指令nginx 工作模式和连接数上限 

 
http {
    #apache/ target=_blank class=infotextkey>http服务器配置 
    include       mime.types;           #包含文件mime.types 
    default_type  application/octet-stream;  #默认为二进制流 
 
    #日志格式的设定 
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '  #HttpLog模块指令,日志输出格式,main为日志名称,可以在access_log指令引用 
    #                  '$status $body_bytes_sent "$http_referer" ' 
    #                  '"$http_user_agent" "$http_x_forwarded_for"'; 
     
 
    #access_log  logs/access.log  main; 
 
    sendfile        on;   #高效文件传输模式,将tcp_nopush和tcp_nodely设置为on 
    #tcp_nopush     on; 
 
    #keepalive_timeout  0;  #客户端连接保持活动的超时时间,超时后关闭连接 
    keepalive_timeout  65;        
 
    #gzip  on;  #开启gzip压缩  实时压缩输出数据流 
 
    #server虚拟主机配置1 
    server { 
        listen       80;  #端口 
        server_name  www.xxx1.com; #ip或域名,可以多个www.abc.com,127.0.0.1 
 
        #charset koi8-r;   #编码格式 
 
        access_log  logs/xxx1.access.log  main;   #虚拟主机访问日志存放路径 
 
        location / { 
            #root   html; 
            index  index.html index.htm; 
        root   /web/www/xxx1.com/htdocs; 
        } 
 
        #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; 
        } 
 
   #server虚拟主机配置2 
    server { 
        listen       80;  #端口 
        server_name  www.xxx2.com; #ip或域名,可以多个www.abc.com,127.0.0.1 
 
        #charset koi8-r;   #编码格式 
 
        access_log  logs/xxx2.access.log  main;   #虚拟主机访问日志存放路径 
 
        location / { 
            #root   html; 
            index  index.html index.htm; 
        root   /web/www/xxx2.com/htdocs; 
        } 
 
        #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; 
        } 
        
   #server虚拟主机配置3 
        include /usr/local/nginx/conf/vhosts/www.xxx2.com.conf; 
   ####/usr/local/nginx/conf/vhosts/www.xxx2.com.conf 
     #server { 
      #  listen    80; 
      #  server_name  www.xxx3.com 
      #  access_log   logs/xxx3.access.log.main; 
      #  location  / { 
      #     index index.html; 
      #     root /web/www/xxx3.com/htdocs; 
      #  } 
    #} 
   ####/usr/local/nginx/conf/vhosts/www.xxx2.com.conf 
      
 
   #nginx反向代理负载均衡配置 
     upstream myserver{ 
        server 192.168.1.101:80 weight=3 max_fails=3 fail_timeout=20s; 
        server 192.168.1.102:80 weight=1 max_fails=3 fail_timeout=20s; 
        server 192.168.1.103:80 weight=4 max_fails=3 fail_timeout=20s; 
     } 
     
        server{ 
       listen 80; 
       server_name   www.xxx.com 192.168.1.100; 
       index index.htm index.html 
       root /web/root; 
 
         location / { 
        proxy_pass http://myserver; 
        proxy_next_upstream http_500 http_502 http_503 error timeout invalid_header; 
        include /usr/local/nginx/conf/proxy.conf; 
      } 
 
    } 
     
     ######/usr/local/nginx/conf/proxy.conf文件内容 
     #proxy_redirect off; 
     #proxy_set_header Host $host; 
     #proxy_set_header X-Real-IP $remote_addr; 
     #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     #client_body_buffer_size 128k; 
     #proxy_connect_timeout 90; 
     #proxy_send_timeout 90; 
     #proxy_read_timeout 90; 
     #proxy_buffer_size 4k; 
     #proxy_buffers 4 32k; 
     #proxy_busy_buffers_size 64k; 
     #proxy_temp_file_write_size 64k; 
     ######proxy.conf文件内容 
 
    #防盗链接设置 
    location ~* .(jpg|gif|png|swf|flv|wma|wmv|asf|mp3|mmf|zip|rar)${ 
        valid_referers none blocked *.xxx.com xxx.com; 
        if($invalid_referer) 
        { 
          rewrite ^/ http://www.xxx.com/img/error.gif 
        #return 403; 
        } 
 
        location /images{ 
          root /usr/local/nginx/html; 
          valid_referers none blocked *.xxx.com xxx.com; 
          if($invalid_referer){ 
            return 403; 
          } 
        } 
    } 
 
       #日志分割配置 
       #/bin/bash 
       savepath_log='/home/nginx/logs'   # 分割后日志存放路径 
       nglogs='/usr/local/nginx/logs'    # nginx日志文件存放路径 
    
       mkdir -p $savepath_log/$(date+%Y)/$(date+%m) 
       mv $nglogs/access.log $savepath_log/$(date+%Y)/$(date+%m)/access.$(date+%Y%m%d).log 
       mv $nglogs/error.log $savepath_log/$(date+%Y)/$(date+%m)/error.$(date+%Y%m%d).log 
       kill -USR1 'cat /usr/local/nginx/logs/nginx.pid'   #通过nginx信号USR1实现日志自动切换功能 
 
        # 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; 
        #} 
    } 
    
    # another virtual host using mix of IP-, name-, and port-based configuration 
    # 
    #server { 
    #    listen       8000; 
    #    listen       somename:8080; 
    #    server_name  somename  alias  another.alias; 
 
    #    location / { 
    #        root   html; 
    #        index  index.html index.htm; 
    #    } 
    #} 
 
    # HTTPS server 
    # 
    #server { 
    #    listen       443; 
    #    server_name  localhost; 
 
    #    ssl                  on; 
    #    ssl_certificate      cert.pem; 
    #    ssl_certificate_key  cert.key; 
 
    #    ssl_session_timeout  5m; 
 
    #    ssl_protocols  SSLv2 SSLv3 TLSv1; 
    #    ssl_ciphers  HIGH:!aNULL:!MD5; 
    #    ssl_prefer_server_ciphers   on; 
 
    #    location / { 
    #        root   html; 
    #        index  index.html index.htm; 
    #    } 
    #}