nginx配置详解

来源:互联网 发布:怎么推广淘宝产品 编辑:程序博客网 时间:2024/06/09 14:29

nginx的默认的配置文件有如下的内容,nginx配置分为

user  nginx nginx;  //运行的用户和组worker_processes  1;   //进程数,通常设置与cpu核数相同#error_log  logs/error.log;    //定义日志文件及写入等级#error_log  logs/error.log  notice;#error_log  logs/error.log  info;error_log /tmp/nginx_error.log  error;#pid        logs/nginx.pid;   //定义进程文件位置worker_rlimit_nofile 65535;   //一个nginx进程打开的最多文件描述符数目//工作模式及连接上限events {    use epool;  //参考时间模型 异步    worker_connections  65535;  //单个进程最大连接数(最大连接数=连接数*进程数)}//设定http服务器http {    include       mime.types;   //设定文件扩展名和文件映射类型,路径/nginx安装路径/conf/mime.types    default_type  application/octet-stream;     //设置自定义的日志格式,类型为main     #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;        //开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off    #tcp_nopush     on;       //防止网络阻塞    #tcp_nodelay    on;       //防止网络阻塞    #keepalive_timeout  0;    keepalive_timeout  65;    //连接超时时间    #charset utf-8; #默认编码    server_names_hash_bucket_size 128;    //服务器名字的hash表大小    client_header_buffer_size 32k;        //上传文件大小限制    large_client_header_buffers 4 64k;    //设定请求缓冲    client_max_body_size 8m;              //设定请求缓冲    #gzip  on;    gzip on; #开启gzip压缩输出    gzip_min_length 1k; #最小压缩文件大小    gzip_buffers 4 16k; #压缩缓冲区    gzip_http_version 1.0; #压缩版本(默认1.1,前端如果是squid2.5请使用1.0)    gzip_comp_level 2; #压缩等级    gzip_types text/plain application/x-javascript text/css application/xml;    #压缩类型,默认就已经包含textml,所以下面就不用再写了,写上去也不会有问题,但是会有一个warn。    gzip_vary on;    #FastCGI相关参数是为了改善网站的性能:减少资源占用,提高访问速度。下面参数看字面意思都能理解。(根据实际情况调整)     fastcgi_connect_timeout 300;    fastcgi_send_timeout 300;    fastcgi_read_timeout 300;    fastcgi_buffer_size 64k;    fastcgi_buffers 4 64k;    fastcgi_busy_buffers_size 128k;    #limit_zone crawler $binary_remote_addr 10m; #开启限制IP连接数的时候需要使用//接下来就是虚拟主机的配置,可以用多个文件表示,只要加个include就可以如#include /usr/local/nginx/conf/vhost/*.conf//这里分两类,一种用nginx只做负载均衡,然后将请求转发到web服务器上,这种这里只要设置upstream机器---------------------------------------------------------------------------------   upstream web_A_80{     server 192.168.1.1;   //web服务器1     server 192.168.2.1;   //web服务器2    }   **//https请求访问443端口**upstream web_A_443{     server 192.168.1.1443;   //web服务器1     server 192.168.2.1443;   //web服务器2    } server {    listen 80;    server_name web1.com web2.com    //可以设置多个域名   location / {       # root html;       # index index.html index.htm;       # limit_req zone=juheapi.com burst=5;        proxy_pass web_A_80;        proxy_set_header X-Real-IP \$remote_addr;        proxy_set_header X-Forwarded-For  \$proxy_add_x_forwarded_for;        proxy_set_header Host $host;       # proxy_set_header X-NginX-Proxy true;     }  } server {    listen 443;    server_name web1.com web2.com    //可以设置多个域名   location / {       # root html;       # index index.html index.htm;       # limit_req zone=juheapi.com burst=5;        proxy_pass web_A_443;        proxy_set_header X-Real-IP \$remote_addr;        proxy_set_header X-Forwarded-For  \$proxy_add_x_forwarded_for;        proxy_set_header Host $host;       # proxy_set_header X-NginX-Proxy true;       }  } 然后在对应的web服务器上设置访问控制,如在192.168.1.1机器上,配置web1.com.confserver {        listen    443;        listen    80;    fastcgi_intercept_errors on;        server_name web1.com;        root        /data/www/nginx/web1.com;    location / {        index index.html index.htm;    }    location ~ \.php$ {            fastcgi_pass    127.0.0.1:9000;            fastcgi_index   index.php;            include fastcgi.conf;        }    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {                expires 30d;        }        location ~ .*\.(js|css)?$ {                expires 30d;        }             location ~ /\.ht {        deny all;    }    #禁止访问.sql文件    location ~ /*\.sql {        return 404;    }    #禁止访问.md文件    location ~ /*\.md {        return 404;    }    #禁止访问所有隐藏文件    location ~ /\. {        return 404;    }    #禁止访问所有隐藏文件夹的内容    location ~ /\.*/ {        return 404;    } access_log  /var/log/weblog/web1.com_acc.log main; error_log /var/log/weblog/web1.com_err.log  error;}----------------------------------------------------------------------------------------另一种,直接将本机作为web服务器,不需要负载均衡,则同上面的,只是不需要upstream。
0 0
原创粉丝点击