zoukankan      html  css  js  c++  java
  • Nginx学习笔记(二、Nginx基本命令及配置)

    目录:

    • nginx的启停控制
    • nginx的配置文件解读

    nginx的启停控制

    1、Nginx信号控制:

    nginx中可以通过发送信号的方式来控制服务器的启停等,但要达成这些操作首先要知道nginx的PID

    获取pid的方式有两种:

    • 利用linux的ps命令查看:ps -ef | grep nginx 或者是 ps aux | grep nginx
    • 直接查看nginx的PID存储文件:vim nginx存储目录/logs/nginx.pid(如,我本地为vi /usr/local/nginx/logs/nginx.pid)


     找到PID后便可以通过PID来发送信号了,目前nginx提供了如下几种信号。

    信号

    用法

    TERM/INT

    快速停止nginx服务

    QUIT

    平缓的停止nginx服务

    HUP

    平滑重启,即使用新的配置文件启动后平缓停止原有进程

    USR1

    重新打开日志,常用于日志的切割·

    USR2

    使用新的nginx版本启动服务,之后平缓停止原有的进程,也就是所谓的“平滑升级”,

    WINCH

    平缓停止worker prcess ,用于nginx服务平滑升级 

    同样的向Nginx服务进程发送信号也有两种方式:一种是使用Nginx二进制文件,另外一种是使用kill命令发送信号。

    1 kill QUIT 1478

    当然我们也可以动态的指定pid,kill 信号 filepath(filepath=nginx pid路径)。

    1 kill QUIT /usr/local/nginx/logs/nginx.pid

    2、Nginx服务启动:

    linux下在nginx安装目录下的sbin命令中执行nginx二进制文件即可.

    1 cd /usr/local/nginx/sbin
    2 ./nginx

    关于其它的命令可通过-h或?查看:

    1 ./nginx -h
    2 ./nginx -?

    3、Nginx服务停止:

    1、快速停止:立马丢弃手上的工作,停掉但取nginx正在处理的所有网络请求。

    2、平缓停止:完成当前工作后再停止nginx。

     1 ./nginx -s stop # 快速停止(习惯的方式)
     2 ./nginx -g INT  # 快速停止
     3 ./nginx -g TERM # 快速停止
     4 ./nginx -g QUIT # 平缓停止
     5 
     6 # 使用PID方式
     7 kill INT PID
     8 kill TERM PID
     9 kill QUIT PID
    10 
    11 # kill -9
    12 kill -9 信号 PID
    13 kill -9 PID      # 不推荐,容易导致部分用户丢失连接

    4、Nginx服务重启:

    1 # 可以指定新的配置文件
    2 ./nginx -g 信号 [新的配置文件]
    3 
    4 # 可以使用PID,或者是pid文件所在的文件
    5 kill HUB PID
    6 
    7 # 在工作中常用的重启方式:平滑重启我们的nginx服务器,生产环境中经常使用
    8 ./nginx -s reload  

    5、Nginx服务升级:

    如果我们需要对当前的Nginx服务进行升级 ,应用新的模块,最简单的方式是停下来,然后开启新的Nginx服务,那么给我们的用户体验是非常差的,会导致用户在一段时间内无法访问我们的服务器为了解决这个问题,Nginx提供了平滑升级的方案:

    注意:为了实现nginx服务器的平滑升级,新安装的服务器路径应该和旧的一致。因此建议用新安装的服务器之前先备份一下我们的旧nginx服务器,如果由于种种原因不能保持新旧客户端路径一致则可以做一下操作,将旧的服务器路径更改为新的路径,新的服务器放入旧的路径中。

     1 # newinstallpath新文件的路径
     2 ./nginx -p new_install_path
     3 
     4 # 备份旧的服务器
     5 
     6 # 安装新的服务器
     7 
     8 # 使新旧服务器实现平滑升级
     9 ./nginx -g USR2 
    10 
    11 # 或者使用 
    12 kill USR2 nginx.pid路径
    13 
    14 # 查看新服务器的启动情况
    15 ps -ef |grpe nginx 
    16 
    17 # 发送平滑停止旧的服务器信号
    18 ./nginx -g WINCH

    执行过程:

    • Nginx服务接受到USR2的信号后,首先将旧的Nginx.pid文件后面添加一个.oldbin。
    • 变成了,nginx.pid.oldbin 然后执行新版本的Nginx服务器的二进制文件启动服务,如果启动成功那么我们将会有两个Nginx服务在提供服务。
    • 之后需要向旧的发送WINCH信号,使旧的nginx服务平缓的停止并删除nginx.pid.oldbin文件 在发送WINCH信号前我们可以随时停止新的服务。

    nginx的配置文件解读

      1 #user  nobody;       # 设定访问的用户或组,若不设置默认所有人都可以访问
      2 worker_processes  1; # 设定工作组的数量,理论上越大越好,但是很多原因限制了性能,一般的跟我们服务器核心数一样就可以了
      3 
      4 # 日志文件存储的地方,默认是nginx下的logs 注释为释放的话没有日志生成
      5 #error_log  logs/error.log;
      6 #error_log  logs/error.log  notice;
      7 # 日志的级别设置
      8 #error_log  logs/error.log  info;
      9 
     10 # 进程的pid存放以及生成,如果你不释放开那么就不会在logs下生成nginx.pid文件
     11 #pid        logs/nginx.pid;
     12 
     13 # events块
     14 # 这里设置的属性一般和网络连接有关的,所以没事别瞎折腾他,网络会出现很多莫名其妙的异常 
     15 # 常用到的有worker_processes的设置,比如是否序列化,是否允许,同时接受多个网络请求 
     16 # 选取什么样的时间模型等等
     17 events {
     18     # 设置最大的连接数为,一般默认512,但是常用的时候,一般是1024-2048 
     19     # 一般不要超过你的操作系统的最大文件句柄数
     20     worker_connections  1024;
     21 }
     22 
     23 # 定义程序如何处理http或https连接所必需的全部之类及其它上下文
     24 # 它可以嵌套多个server,配置值代理、缓存、日志定义等绝大多数功能和第三方模块
     25 http {
     26     include       mime.types;
     27     default_type  application/octet-stream;
     28 
     29     #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
     30     #                  '$status $body_bytes_sent "$http_referer" '
     31     #                  '"$http_user_agent" "$http_x_forwarded_for"';
     32 
     33     #access_log  logs/access.log  main;
     34 
     35     sendfile        on;
     36     #tcp_nopush     on;
     37 
     38     #keepalive_timeout  0;
     39     keepalive_timeout  65;
     40 
     41     #gzip  on;
     42 
     43     server {
     44         listen       80;
     45         server_name  localhost;
     46 
     47         #charset koi8-r;
     48 
     49         #access_log  logs/host.access.log  main;
     50 
     51         location / {
     52             root   html;
     53             index  index.html index.htm;
     54         }
     55 
     56         #error_page  404              /404.html;
     57 
     58         # redirect server error pages to the static page /50x.html
     59         #
     60         error_page   500 502 503 504  /50x.html;
     61         location = /50x.html {
     62             root   html;
     63         }
     64 
     65         # proxy the PHP scripts to Apache listening on 127.0.0.1:80
     66         #
     67         #location ~ .php$ {
     68         #    proxy_pass   http://127.0.0.1;
     69         #}
     70 
     71         # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
     72         #
     73         #location ~ .php$ {
     74         #    root           html;
     75         #    fastcgi_pass   127.0.0.1:9000;
     76         #    fastcgi_index  index.php;
     77         #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
     78         #    include        fastcgi_params;
     79         #}
     80 
     81         # deny access to .htaccess files, if Apache's document root
     82         # concurs with nginx's one
     83         #
     84         #location ~ /.ht {
     85         #    deny  all;
     86         #}
     87     }
     88 
     89 
     90     # another virtual host using mix of IP-, name-, and port-based configuration
     91     #
     92     #server {
     93     #    listen       8000;
     94     #    listen       somename:8080;
     95     #    server_name  somename  alias  another.alias;
     96 
     97     #    location / {
     98     #        root   html;
     99     #        index  index.html index.htm;
    100     #    }
    101     #}
    102 
    103 
    104     # HTTPS server
    105     #
    106     #server {
    107     #    listen       443 ssl;
    108     #    server_name  localhost;
    109 
    110     #    ssl_certificate      cert.pem;
    111     #    ssl_certificate_key  cert.key;
    112 
    113     #    ssl_session_cache    shared:SSL:1m;
    114     #    ssl_session_timeout  5m;
    115 
    116     #    ssl_ciphers  HIGH:!aNULL:!MD5;
    117     #    ssl_prefer_server_ciphers  on;
    118 
    119     #    location / {
    120     #        root   html;
    121     #        index  index.html index.htm;
    122     #    }
    123     #}
    124 
    125 }

    nginx-http配置:

  • 相关阅读:
    php中的form表单
    http
    PHP做的简单计算器
    用Js写贪吃蛇
    ajax简单操作,验证用户名是否可以
    关于ARM PC值
    阅读脚本控制pwm代码
    编译选项
    关于机器码、原码、反码、补码
    makefile学习之函数
  • 原文地址:https://www.cnblogs.com/bzfsdr/p/13873469.html
Copyright © 2011-2022 走看看