Nginx配置

 

nginx文件结构:

 
主要以下部分组成:
  1. 全局块: 配置影响nginx全局的命令.如nginx的用户组,pid存放路径,日志路径,配置文件引入,worker process数量等..( 可以暂时不配置)
  2. event块: 配置影响nginx服务器或用户的网络连接.如每个进程的最大连接数,选取事件驱动模型链接请求等.( 可以暂时不配置)
  3. http块: 可以嵌套多个server,配置代理,缓存、日志等大多数功能和第三方模块的配置。(如文件引入,mime-type定义,日志定义等)
  4. server块: 配置虚拟主机的相关参数,一个http中可以有多个server。
  5. location块: 配置路由请求,以及各种页面的处理情况。
...  #全局块

events {  #events块
   ...
}

http #http块{
    ... #http全局块
    server #server块
    {
        ... #server全局块
        location [PATTERN]   #location块
        {
          ...
        }
        location [PATTERN]
        {
          ...
        }
    }
    server
    {
      ...
    }
    ...#http全局块
}
参考:
 
 
########### 每个指令必须有分号结束。#################
#user administrator administrators;  #配置用户或者组,默认为nobody nobody。
#worker_processes 2;  #允许生成的进程数,默认为1
#pid /nginx/pid/nginx.pid;   #指定nginx进程运行文件存放地址
error_log log/error.log debug;  #制定日志路径,级别。这个设置可以放入全局块,http块,server块,级别以此为:debug|info|notice|warn|error|crit|alert|emerg
events {
    accept_mutex on;   #设置网路连接序列化,防止惊群现象发生,默认为on
    multi_accept on;  #设置一个进程是否同时接受多个网络连接,默认为off
    #use epoll;      #事件驱动模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport
    worker_connections  1024;    #最大连接数,默认为512
}
http {
    include       mime.types;   #文件扩展名与文件类型映射表
    default_type  application/octet-stream; #默认文件类型,默认为text/plain
    #access_log off; #取消服务日志    
    log_format myFormat '$remote_addr–$remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for'; #自定义格式
    access_log log/access.log myFormat;  #combined为日志格式的默认值
    sendfile on;   #允许sendfile方式传输文件,默认为off,可以在http块,server块,location块。
    sendfile_max_chunk 100k;  #每个进程每次调用传输数量不能大于设定的值,默认为0,即不设上限。
    keepalive_timeout 65;  #连接超时时间,默认为75s,可以在http,server,location块。


    upstream mysvr {   
      server 127.0.0.1:7878;
      server 192.168.10.121:3333 backup;  #热备
    }
    error_page 404 https://www.baidu.com; #错误页


    server {
        keepalive_requests 120; #单连接请求上限次数。
        listen       4545;   #监听端口
        server_name  127.0.0.1;   #监听地址       
        location  ~*^.+$ {       #请求的url过滤,正则匹配,~为区分大小写,~*为不区分大小写。
           #root path;  #根目录
           #index vv.txt;  #设置默认页
           proxy_pass  http://mysvr;  #请求转向mysvr 定义的服务器列表
           deny 127.0.0.1;  #拒绝的ip
           allow 172.18.5.54; #允许的ip           
        }
    }}
几个常见配置项:
1. $remote_addr 与 $http_x_forwarded_for 用以记录客户端的ip地址;
2. $remote_user :用来记录客户端用户名称;
3. $time_local : 用来记录访问时间与时区;
4. $request : 用来记录请求的url与http协议;
5. $status : 用来记录请求状态;成功是200;
6. $body_bytes_s ent :记录发送给客户端文件主体内容大小;
7. $http_referer :用来记录从那个页面链接访问过来的;
8. $http_user_agent :记录客户端浏览器的相关信息;
 

Windows上Nginx启动、重启、停止脚本

启动脚本

@echo off
D:
cd D:\soft\web\nginx-1.20.1\nginx-1.20.1 
tasklist | findstr /i "nginx.exe"
echo "nginx is starting on port 80"
start "" "nginx.exe"
pause

终止脚本

@echo off
D:
cd D:\soft\web\nginx-1.20.1\nginx-1.20.1
tasklist | findstr /i "nginx.exe"
echo "nginx is running, stopping..."
rem nginx -s stop
TASKKILL /F /IM nginx.exe /T
echo "stop ok"
pause

重启脚本

@echo off
D:
cd D:\soft\web\nginx-1.20.1\nginx-1.20.1
tasklist | findstr /i "nginx.exe"
nginx -s reload
echo "restart ok"
pause
posted @ 2021-09-21 21:16  人人从众  阅读(38)  评论(0编辑  收藏  举报