zoukankan      html  css  js  c++  java
  • CentOS7上Nginx的使用

    Nginx 的启动

    指定配置文件的方式启动nginx

    # nginx -c /etc/nginx/nginx.conf
    

    对于yum安装的nginx,使用systemctl命令启动

    # systemctl start nginx

    Nginx 的停止

    从容停止

    kill -QUIT Nginx主进程号
    

    快速停止nginx

    kill -TERM Nginx主进程号
    

    强制停止所有nginx进程

    pkill -9 nginx

    Nginx的平滑重启

    在修改了nginx配置文件后,在重启nginx之前,需要确认nginx配置文件的语法是否正确,可执行以下命令检测

    # nginx -t -c /etc/nginx/nginx.conf
    

    如上没有错误的话,就可以平滑重启了

    # nginx -s reload
    

    或者

    kill -HUP Nginx主进程号

    Nginx的平滑升级

    对于编译安装的nginx,可以将新版本编译安装到旧版本的nginx安装路径中。替换之前,最好备份一下旧的可执行文件。 

    下载新版本nginx
    # wget http://nginx.org/download/nginx-1.9.14.tar.gz
    
    获取旧版本nginx的configure选项
    # nginx -V
    
    编译新版本nginx
    # tar -zxvf nginx-1.9.14.tar.gz
    # cd nginx-1.9.14
    # ./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-mail --with-mail_ssl_module --with-file-aio --with-ipv6 --with-http_v2_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic'
    # make
    
    备份旧版本nginx可执行文件,使用新版本nginx可执行文件替代旧的可执行文件
    # mv /usr/sbin/nginx /usr/sbin/nginx.old
    # cp objs/nginx /usr/sbin/nginx

    测试新版本nginx是否正常

    nginx –t –c /etc/nginx/nginx.conf

    平滑升级nginx,旧版本Nginx的pid变为oldbin,此时旧版本和新版本的nginx同时运行,共同处理完用户请求

    kill -USR2 `cat /var/run/nginx.pid`
    

    从容关闭旧版本的nginx进程

    kill -WINCH `cat /var/run/nginx.oldbin`
    

    一段时间后,旧版本的nginx进程处理了所有已连接的请求后退出,仅由新版本的nginx进程来处理输入的请求了,可以通过以下命令查看

    # ps -ef | grep nginx

    这时候,我们可以决定是使用新版本,还是恢复到旧版本

    kill -HUP 旧的主进程号 :Nginx在不重载配置文件的情况下启动他的工作进程
    kill -QUIT 新的主进程号  :从容关闭其工作进程
    kill -TERM 新的主进程号 :强制退出
    kill 新的主进程号或旧的主进程号:如果因为某些原因新的工作进程不能退出,则向其发送kill信号
    

    新的主进程退出后,旧的主进程会移除 .oldbin 后缀,恢复为它 的 .pid 文件,这样,一切就恢复到升级之前了。

    如果尝试升级成功,而你也希望保留新的服务器时,可发送 QUIT 信号给旧的主进程,使其退出而只留下新的服务器运行。

    Nginx配置文件nginx.conf的结构

    1. 全局块

    2. events块

    3. http块

    4. server块

    5. location块

    基本配置

    配置运行Nginx服务器用户(组)

    user user [group];

    配置允许生成的worker process数

    work_processes number | auto;
    

    配置Nginx进程PID存放路径

    pid file;
    

    配置错误日志的存放路径

    error_log file | stderr [debug | info | notice | warn | error | crit | alert | emerg];
    

    配置文件的引入

    include file;
    

    设置网络连接的序列化

    accept_mutex on | off;
    

    配置是否允许同时连接多个网络连接

    multi_accept on | off;
    

    事件驱动模型的选择

    use method;
    

    配置最大连接数

    worker_connections number;
    

    定义MIME-Type

    include mime.types;
    default_type application/octet-stream;
    

    自定义服务日志

    access_log path [format [buffer=size]];
    

    配置允许sendfile方式传输文件

    sendfile on | off;
    

    配置连接超时时间

    keepalive_timeout [header_timeout];
    

    单连接请求数上限

    keepalive_requests number;
    

    配置网络监听

    第一种配置监听的IP地址:

    listen address[:port] [default_server] [setfib=number] [backlog=number] [rcvbbuf=size] [sndbuf=size] [deferred] [accept_filter=filter] [bind] [ssl];
    

    第二种配置监听端口:

    listen port [default_server] [setfib=number] [backlog=number] [rcvbuf=size] [sndbuf=size] [accept_filter=filter] [deferred] [bind] [ipv6only=on|off] [ssl];
    

    第三种配置UNIX Domain Socket:

    listen unix:path [default_server] [backlog=number] [rcvbuf=size] [sndbuf=size] [accept_filter=filter] [deferred] [bind] [ssl];
    

    基于名称的虚拟主机配置

    # 虚拟主机的名称设置为mysever.com或www.myserver.com
    server_name myserver.com www.myserver.com;
    
    # 使用通配符,通配符只能用在首段或尾段
    server_name *.myserver.com www.myserver.*;
    
    # 使用正则表达式,~作为正则表达式的开始标记
    server_name ~^wwwd+.myserver.com$;
    

    基于IP的虚拟主机配置

    如果只有一个网卡,可以添加多个IP别名

    查看网卡信息

    # nmcli con show
    

    查看IP信息

    # ip addr

    添加网卡别名

    # nmcli con mod eth0 +ipv4.addresses  10.10.10.21/24
    

    重新加载网卡配置

    # nmcli con load /etc/sysconfig/network-scripts/ifcfg-eno16777736
    # nmcli dev connect eno16777736
    

    重新查看IP信息

    # ip addr
    

    相关配置片段:

    ...
    http
    {
        server
        {
            listen: 80;
            server_name: 10.10.10.20;
            ...
        }
        server
        {
            listen: 80;
            server_name: 10.10.10.21;
            ...
        }
        ...
    }
    

    配置location块

    location = [= | ~ | ~* | ^~ ] uri { ... }
    

    "=" 用于标准uri前,要求请求字符串与uri严格匹配。

    "~" 用于表示uri包含正则表达式,并且区分大小写。

    "~*" 用于表示uri包含正则表达式,并且不区分大小写。

    "^~" 用于标准uri前,要求Nginx服务器找到标识uri和请求字符串匹配度最高的location后,立即使用此location处理请求,而不再使用location块中的正则uri和请求字符串做匹配。

    配置请求的根目录

    root path;
    

    更改location的URI

    alias path;
    

    设置网站的默认首页

    index file ...;
    

    设置网站的错误页面

    error_page code ... [=[redponse]] uri
    

    基于IP配置Nginx的访问权限

    allow address | CIDR | all;
    deny address | CIDR | all;
    
  • 相关阅读:
    gridview自增序号
    web.config文件详解
    [Spring-AOP-XML] 看完了解Spirng中的AOP和XML进行事务管理
    [Spring] 快速介绍Spirng中AOP事务的传播属性和事务隔离级别
    [ log4j ]-日志文件的使用
    [AOP] 最简单的AOP概念理解
    [Spring] 一个例子了解Spring如何实例化Bean
    [Spring] 一篇文章了解Spring是什么
    JavaServlet的文件上传和下载
    解决:npm install ERR! Unexpected end of JSON input
  • 原文地址:https://www.cnblogs.com/edward2013/p/5373818.html
Copyright © 2011-2022 走看看