创新路
我们一直在努力

Nginx的简单配置

nginx是使用比较广泛的linux的web服务,下面是一些简单的使用及配置

安装nginx后的配置文件/usr/local/nginx/conf/nginx.conf

结构:

   … …

    http{

    … …

    server{

    … …

    location{

    ……

    }

    }

    }

1. 用户认证

    # htpasswd  /usr/local/nginx/pass   scott      //追加用户,不使用-c选项

    server {

         … …

                 auth_basic "Input Password:";                          //认证提示符

             auth_basic_user_file "/usr/local/nginx/pass";        //认证密码文件

             location / {

              … …

                }

          }

2. 基于域名的虚拟主机

    server {

         listen  80;                                      //端口

         server_name  www.b.com;            //域名

           location / {

       … …

    }

    }

3. 基于端口的虚拟主机

         listen  80;                                      //端口

4. 基于IP的虚拟主机

         listen  192.168.4.254:80;                                      //端口

5. 基于加密网站的虚拟主机(源码安装必须使用–with-http_ssl_module)

    #生成私钥与证书

        cd /usr/local/nginx/conf

        openssl genrsa > cert.key    //生成私钥

        openssl refq -new -x509 -key cert.ket > cert.pem    //生成证书

    #修改配置文件

    vim  /usr/local/nginx/conf/nginx.conf   //原文件被注释,取消注释即可

        #server {

        #    listen       443 ssl;

        #    server_name  localhost;

 

        #    ssl_certificate      cert.pem;

        #    ssl_certificate_key  cert.key;

 

        #    ssl_session_cache    shared:SSL:1m;

        #    ssl_session_timeout  5m;

 

        #    ssl_ciphers  HIGH:!aNULL:!MD5;

        #    ssl_prefer_server_ciphers  on;

 

        #    location / {

        #        root   html;

        #        index  index.html index.htm;

        #    }

        #}

6. 配置支持php动态页面

     location  ~  \.php$  {

                root           html;

                fastcgi_pass   127.0.0.1:9000;    //将请求转发给本机9000端口,PHP解释器

                fastcgi_index  index.php;

                #fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;  

                include  fastcgi.conf;      //模版错误,正确包含在fastcgi.conf

            }

7. 地址重写

    rewrite 旧地址 新地址 [选项]

    last 不再读其他rewrite

    break 不再读其他语句,结束请求

    redirect 临时重定向

    permanent 永久重定向

 

    server {

              listen       80;

              server_name  localhost;

      location / {

          root   html;

      index  index.html index.htm;

      }

      if ($http_user_agent ~* firefox) {            //识别客户端firefox浏览器

      rewrite ^(.*)$     /firefox/$1;                  //firefox浏览器用户访问firefox目录下内容

      }

      }

. Nginx反向代理–集群

    http {

    .. ..

    upstream webserver {

             ip_hash;

            server 192.168.2.100:80 weight=1 max_fails=2 fail_timeout=10;

            server 192.168.2.200:80 weight=2 max_fails=2 fail_timeout=10;

            }

    .. ..

    server {

            listen        80;

            server_name  localhost;

            location / {

              proxy_pass http://webserver;

            }

    }

    //weight设置服务器权重值,默认值为1

    //max_fails设置最大失败次数

    //fail_timeout设置失败超时时间,单位为秒

    // ip_hash 根据客户端ip分配固定的后端服务器

9. TCP/UDP调度器

    –with-stream 开启ngx_stream_core_module模块

    配置在http外

    stream {

                upstream backend {

                   server 192.168.2.100:22;            //后端SSH服务器的IP和端口

                   server 192.168.2.200:22;

                }

                server {

                    listen 12345;                           //Nginx监听的端口

                    proxy_connect_timeout 1s;

                    proxy_timeout 3s;

                    proxy_pass backend;

                }

    } 

 

Nginx优化

A.优化并发量

    # ab -n 2000 -c 2000 http://192.168.4.5/       //模拟多并发

    # vim /usr/local/nginx/conf/nginx.conf

    .. ..

    worker_processes  2;             //与CPU核心数量一致

    events {

    worker_connections 65535;        //每个worker最大并发连接数

    use epoll;

    }

    .. ..

    修改配置文件后仍然无法高并发需要修改linux内核参数

     # ulimit -a                               //查看所有属性值

     # ulimit -Hn 100000                //设置硬限制(临时规则)

     # ulimit -Sn 100000                //设置软限制(临时规则)

     # vim /etc/security/limits.conf      //永久

        .. ..

        *               soft    nofile            100000

        *               hard    nofile            100000

      //该配置文件分4列,分别如下:

      //用户或组    硬限制或软限制    需要限制的项目   限制的值

 

B. 解决客户端访问头部信息过长的问题

    # vim /usr/local/nginx/conf/nginx.conf

    .. ..

    http {

    client_header_buffer_size    1k;            //默认请求包头信息的缓存    

    large_client_header_buffers  4 4k;        //大请求包头部信息的缓存个数与容量

    .. ..

    }

 

C. 客户端浏览器缓存数据

    Firefox地址栏内输入about:cache将显示Firefox浏览器的缓存信息

    # vim /usr/local/nginx/conf/nginx.conf

    server {

        …

    location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ {    //浏览器缓存图片等信息

    expires        30d;            //定义客户端缓存时间为30天

    }

    ….

    }

 

D. 自定义报错页面

    # vim /usr/local/nginx/conf/nginx.conf

     .. ..

     error_page   404  /40x.html;    //自定义错误页面

     .. ..

 

    附常见http状态码

    200    一切正常

    301    永久重定向

    302    临时重定向

    401    用户名或密码错误

    403    禁止访问(客户端ip地址被拒绝)

    404    文件不存在

    414    请求URL头部过长

    500    服务器内部错误

    502    Bad Gateway

 

E. 查看服务器状态信息

    使用模块 –with-http_stub_status_module

    # cat /usr/local/nginx/conf/nginx.conf

      … …

      location /status {

                stub_status on;

              }

      … …

 

    查看

    #curl  http://192.168.4.5/status

    Active connections:当前活动的连接数量。

    Accepts:已经接受客户端的连接总数量。

    Handled:已经处理客户端的连接总数量(一般与accepts一致,除非服务器限制了连接数量)。

    Requests:客户端发送的请求数量。

    Reading:当前服务器正在读取客户端请求头的数量。

    Writing:当前服务器正在写响应信息的数量。

    Waiting:当前多少客户端在等待服务器的响应。

 

F. 开启gzip压缩功能,提高数据传输效率

      # cat /usr/local/nginx/conf/nginx.conf

        http {

        .. ..

        gzip on;                                      //开启压缩

        gzip_min_length 1000;                //小文件不压缩

        gzip_comp_level 4;                     //压缩比率

       gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;             //对特定文件压缩,类型参考mime.types

        .. ..

        }

G. 服务器内存缓存

        http {

                open_file_cache    max=2000  inactive=20s;

                open_file_cache_valid    60s;

                open_file_cache_min_uses 5;

                open_file_cache_errors   off;

        //设置服务器最大缓存2000个文件句柄,关闭20秒内无请求的文件句柄

        //文件句柄的有效时间是60秒,60秒后过期

        //只有访问次数超过5次会被缓存

        }

 

 

未经允许不得转载:天府数据港官方信息博客 » Nginx的简单配置

客官点个赞呗! (0)
分享到:

评论 抢沙发

评论前必须登录!

天府云博 - 做有态度的开发&运维&设计学习分享平台!

联系我们百度云主机