Nginx

1.查找安装路径

whereis nginx


2.检查配置文件nginx.conf 是否正确
./nginx –t


3.启动、停止nginx

cd /usr/local/nginx/sbin/
./nginx
./nginx -s stop
./nginx -s quit
./nginx -s reload
./nginx -s quit    # 此方式停止步骤是待nginx进程处理任务完毕进行停止。
./nginx -s stop    # 此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。


4.查询nginx进程:

ps aux|grep nginx


5.重新加载配置文件

./nginx -s reload


6.配置nginx.conf

#======================以下是全局配置项
#指定运行 Nginx 的用户和用户组 ,
#默认情况下该选项关闭(关闭的情况下使用的用户就是 nobody)
#user nobody nobody ;
#表示操作系统启动多少个工作进程运行 Nginx
worker processes 1 ;
#Nginx 运行错误的日志存放位置。当然你还可以指定错误级别
#error log logs/error.log ;
#error_log logs/error.log notice ;
#error_log logs/error.log info ;
#指定主进程 id 文件的存放位置,虽然 worker processes != 1 的情况下, 会有很多进程 , 管理进程却只有一个
#pid logs/nginx.pid;
events {
     #指单个工作进程可以允许同时建立外部连接的数量, 无论这个连接是 Nginx 外部建立的,还是 Nginx 内部建立的
     worker connections 1024 ;
     #连接使用的网络工/ 0 模型,
     #可以采用[ kqueue rtsig epoll select poll  eventport ]  
    use epoll ;
}
http {
     #===============以下是 Nginx 后端服务配置项
     upstream backendserverl {
         #Nginx 向后端服务器分配请求任务 的方式 , 默认为轮询,如果指定了ip hash ,就是 Hash 算法
         #ip hash
         #后端服务器 ip : port , 如果有多个服务节点 , 这里就配置多个
        server 192.168.220.131:8080 ;
         server 192.168.220.132:8080 ;

         #backup 表示,这是一个备份节点 , 只有当所有节点失效后
         #Nginx 才会往这个节点分配请求任务
         #server 192.168.220.133:8080 backup ;
         #weight , 固定权重 , 还记得我们上文提到 的加权轮询方式吧
         #server 192.168.220.134:8080 weight=100;
     }
}


# =========================以下是 HTTP 协议主配置
#安装 Nginx 后,在 conf 目录下除了 nginx.conf 主配置文件,还有很多模板配置文件 ,
#这里就是导入这些模板文件
include mime .types ;
#HTTP 核心模块指令,这里设定默认类型为二进制流,也就是当文件类型未定义时使用这种方式
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 规则开启
sendfile on ·
#指定一个连接的等待时间(单位秒),如果超过等待时间,则连接就会断掉 。注意一定要设置,否则高并发情况下会产生性能问题
keepalive_timeout 65 ;
#开启数据压缩,后文详细介绍
gzip on;
#==========================以下是一个服务实例的配置
server {
     #这个代理实例的监听端口
    listen 80 ;
     #server_name 取个唯一的实例名都要想半天?
     server_name localhost ;
     #编码格式
     charset utf-8 ;
     #access log logs/host.access.log main;
     #location 将按照规则分流满足条件的 URL o
     #” location /”你可以理解为“默认分流位置” 。
     location / {
             #root 目录,这个 html 表示 Nginx 主安装目录下的“ html ”目录 。
             root html ;
             #目录中的默认展示页面
             index index.html index.htm;
             #location 支持正则表达式, “~” 表示匹配正则表达式
             location ~ ^/business/ {
                 #方向代理。后文详细讲解
                 proxy_pass http://backendserverl;
                 #redirect server error pages to the static page / 50x.html
                 #errorpage 404 /404 . html;
                 error_page 500 502 503 504 /50x.html ;
                 location = /50x.html {
                     root html;
                 }

             }
     }
}


7.常用模块
1)gzip 压缩模块

#开启 gzip 压缩服务
gzip on ;
#gzip 压缩需要申请|临时内存空间,假设前提是压缩后大小是小子等于压缩前的。例如,如果原始文件大小为 10KB ,那么它超过了 8KB,所以分配的内存是 8 × 2 = 16KB;再例如,原始文件大小为 18KB,很明显 16KB 也是不够的,那么按照 8x2x2 = 32KB 的大小申请内存。如果没有设置,则默认值是申请跟原始数据相同大小的内存空间去存储 gzip 压缩结果
gzip_buffers 2 8K ;
#进行压缩的原始文件的最小值,也就是说如果原始文件小子 SKB,那么就不会进行压缩了
gzip_min_length 5K;
#gzip 压缩基子的 HTTP 协议版本,默认就是 HTTP 1.1
gzip_http_version 1.1;
# gzip 压缩级别 l~ 9 ,级别越高压缩率越大,压缩时间也就越长, CPU 越高
gzip_comp_level 5;
#需要进行 gzip 压缩的 Content-Type 的 Header 的类型。建议 JS 、 TEXT 、 css 、 XML, JSON
#格式都要进行压缩:图片就没必要了, GIF 、 JPGE 文件已经压缩得很好了 , 就算再压缩,效果也不好,而且还耗费 CPU 。
gzip_types text/HTML text/plain application/x-javascript text/css application/xml;


2)rewrite 模块
Nginx 的强大在于其对URL请求的(应用正则表达式)重写(重定位),这就是 rewrite 功能模块的作用 。Nginx 的 rewrite 功能模块依赖于 PCRE Lib

~      区分大小写进行正则表达式匹配
~*     不区分大小写进行正则表达式匹配
!~     区分大小写进行正则表达式不匹配
!~*    不区分大小写进行正则表达式不匹配

如: location ~*  \.(jpg|gif|png|ioc|jpeg)$

Nginx 中的全局变量
• $content_length:获取 request 中 header 部分的“ Content_Length ”值 。
• $content_type : 获取 request 中 header 部分的“ Content_type ”值。
• $request_method : 请求方式,常用的有两种请求方式: POST 、 GET 。
• $remote addr : 发送请求的客户端 IP 。
• $remote_port:发送请求的客户端端口。
• $request_uri : 含有参数的完整的初始 URI 。
• $server_addr: request 到达的 server 的 IP 。
• $server_port : 请求到达的服务器的端口号 。

rewrite 语法
rewrite regex replacement flag

flag关键字
• redirect:通知客户端重定 向到 rewrtie 后面的地址 。
• permanent:通知客户端永久重定向到 rewrtie 后面的地址 。
• last : 将rewrite 后的地址重新在 server 标签中执行。
• break : 将rewrite 后的地址重新在当前的 location 标签中执行 。


3)nginx upstream_check_module健康检查模块



4) image_filter图片动态缩略模块

#不区分大小写进行正则表达式匹配
#只要满足以下表达式的请求路径,则进行图片动态缩略阁的生成
location ~* /(.+)\.(jpg|gif|png|ioc|jpeg)_(\d+)_(\d+)$ {
     #将以上正则表达式第 3 个区域设置的数值传入变量“ w ”
     set $w $3;
     #将以上正则表达式第 4 个区域设置的数值传入变量“ h”
    set $h $4;
     #将 rewrite 后的地址重新在当前的 location 标签执行,以便找到原始图片
     rewrite /(.+)\.(jpg|gif|png|ioc|jpeg)_(\d+)_(\d+)$ /$1.$2 break;
     #按照宽度 w 和高度 h,将原始图片进行等比例缩放
     image filter resize $w $h;
     #设置单张原始图片的最大值为 lOMB
     image_filter_buffer 10M;
     #设置图片所在的根目录
    root /home/nodejs/BDK/public/upload/;
}

posted @ 2018-05-11 17:48  ParamousGIS  阅读(221)  评论(0编辑  收藏  举报