前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Nginx安装及配置(二)

Nginx安装及配置(二)

作者头像
咻一咻
发布2020-05-29 15:29:14
4420
发布2020-05-29 15:29:14
举报
文章被收录于专栏:咻一咻咻一咻

nginx的安装

官方:

Fedora-EPEL:

yum安装
代码语言:javascript
复制
yum install nginx
编译安装:
代码语言:javascript
复制
wegt http://nginx.org/download/nginx-1.12.2.tar.gz

tar xvf nginx-1.12.2.tar.gz

vim nginx-1.12.2/src/core/nginx.h
    #define NGINX_VERSION  "1.12.2" #修改版本号
    #define NGINX_VER      "nginxxxx/" NGINX_VERSION #修改显示服务器名字
    命令 daemon off; 隐藏版本号 显示nginxxxx

vim nginx-1.12.2/src/http/ngx_http_header_filter_module.c #49行处
    static u_char ngx_http_server_string[] = "Server: nginxzzz" CRLF; #修改nginx名字
    命令:server_tolens off; #在http中 隐藏版本号 显示nginxzzz

yum install pcre-devel openssl-devel zlib-devel 

yum groupinstall "development tools"

useradd -r nginx -s /sbin/nologin

./configure --prefix=/usr/local/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--user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_dav_module --with-http_stub_status_module --with-threads --with-file-aio

make && make install

vim /etc/profile.d/nginx.sh
    PATH=/usr/local/nginx/sbin/:$PATH

/usr/local/nginx/sbin/nginx #启动
/usr/local/nginx/sbin/nginx -s stop  #停止

编译安装nginx的选项:

代码语言:javascript
复制
--prefix=/etc/nginx  #安装路径
--sbin-path=/usr/sbin/nginx  #指明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  #指明pid文件安装位置
--lock-path=/var/run/nginx.lock  #锁文件安装位置
--http-client-body-temp-path=/var/cache/nginx/client_temp  #客户端body部分的临时文件存放路径,如果服务器允许客户端使用put方法提交大数据时,临时存放的磁盘路径
--http-proxy-temp-path=/var/cache/nginx/proxy_temp  #作为代理服务器,服务器响应报文的临时文件存放路径
--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp  #作为fastcgi代理服务器,服务器响应报文的临时文件存放路径
--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp  #作为uwsgi代理服务器,服务器响应报文的临时文件存放路径
--http-scgi-temp-path=/var/cache/nginx/scgi_temp  #作为scgi反代服务器,服务器响应报文的临时文件存放路径
--user=nginx  #指明以那个身份运行worker进程,主控master进程一般由root运行
--group=nginx
--with-http_ssl_module  #表示把指定模块编译进来
nginx编译的目录结构
代码语言:javascript
复制
ls /usr/local/nginx/
    /usr/share/nginx/html/index.html
    html是测试页,sbin是主程序 

ls /usr/local/nginx/sbin/
    nginx只有一个程序文件 

ls /usr/local/nginx/html/
    50x.html index.html 测试网页

rpm -ql nginx 查看yum安装目录结构

nginx命令

代码语言:javascript
复制
Nginx:默认为启动nginx
    -h 查看帮助选项
    -v 查看版本
    -V 查看版本和配置选项
    -t 测试nginx语法错误 
    -T nginx配置文件内容
    -q 不显示错误信息
    -c filename 指定配置文件(default: /etc/nginx/nginx.conf) 
    -s signal 发送信号给master进程,signal可为:stop, quit, reopen, reload 示例:-s stop 停止nginx-s reload 加载配置文件 
    -g directives 在命令行中指明全局指令

nginx配置

配置文件的组成部分:

  • 主配置文件: /etc/nginx/nginx.conf
  • 子配置文件: include /etc/nginx/conf.d/*.conf
  • fastcgi,uwsgi,scgi等协议相关的配置文件
  • mime.types:支持的mime类型 /etc/nginx/mime.types

主配置文件的配置指令:

代码语言:javascript
复制
directive value [value2 ...];

注意:

  • (1) 指令必须以分号结尾
  • (2) 大小写敏感
  • (3) 支持使用配置变量
    • 内建变量:由Nginx模块引入,可直接引用
    • 自定义变量:由用户使用set命令定义set variable_namevalue;
    • 引用变量:$variable_name

主配置文件结构:四部

代码语言:javascript
复制
main block:主配置段,即全局配置段,对http,mail都有效
    event {
        ...
    } #事件驱动相关的配置
http {
    ...
}    #http/https 协议相关配置段
mail {
    ...
}    #mail 协议相关配置段
stream {
    ...
}    #stream 服务器相关配置段

Main 全局配置段常见的配置指令分类

  • 正常运行必备的配置
  • 优化性能相关的配置
  • 用于调试及定位问题相关的配置
  • 事件驱动相关的配置
  • 帮助文档 http://nginx.org/en/docs/
正常运行必备的配置:

帮助文档:http://nginx.org/en/docs/ngx_core_module.html

代码语言:javascript
复制
1、user 
    Syntax:  user user[group];
    Default: user nobody nobody;
    Context: main
    指定worker进程的运行身份,如组不指定,默认和用户名同名
    rpm -q --scripts nginx #查看安装脚本

2、pid /PATH/TO/PID_FILE
    指定存储nginx主进程PID的文件路径 #/var/run/nginx.pid

3、include file | mask
    指明包含进来的其它配置文件片断

4、load_module file 
    模块加载配置文件:/usr/share/nginx/modules/*.conf
    指明要装载的动态模块路径: /usr/lib64/nginx/modules
性能优化相关的配置:
代码语言:javascript
复制
1、worker_processes number | auto
    worker进程的数量;通常应该为当前主机的cpu的物理核心数

2、worker_cpu_affinity cpumask ...
    worker_cpu_affinity auto [cpumask] 提高缓存命中率
    CPU MASK:00000001:0号CPU
              00000010:1号CPU
              10000000:8号CPU
    worker_cpu_affinity 0001 0010 0100 1000;
    worker_cpu_affinity 0101 1010;

    命令查看:
        top 和 htop
        watch -n 0.5 'ps axo cmd,pid,psr |grep nginx'
3、worker_priority number
    指定worker进程的nice值,设定worker进程优先级:[-20,20]实测:最大19

4、worker_rlimit_nofile number
    worker进程所能够打开的文件数量上限,如65535
事件驱动相关的配置:
代码语言:javascript
复制
events {
    ...
}

1、worker_connections number
    每个worker进程所能够打开的最大并发连接数数量,如10240
    总最大并发数:worker_processes *  worker_connections

2、use method
    指明并发连接请求的处理方法,默认自动选择最优方法
    use epoll;

3、accept_mutexon | off 
    互斥处理新的连接请求的方法;on指由各个worker轮流处理新请求,Off指每个新请求的到达都会通知(唤醒)所有的worker进程,但只有一个进程可获得连接,造成“惊群”,影响性能,默认on
调试和定位问题:
代码语言:javascript
复制
1、daemon on|off
    是否以守护进程方式运行nignx,默认是守护进程方式 on后台运行 off前台运行

2、master_processon|off
    是否以master/worker模型运行nginx;默认为on off将不启动worker

3、error_logfile [level]  
    错误日志文件及其级别;出于调试需要,可设定为debug;
    但debug仅在编译时使用了“--with-debug”选项时才有效
    stderr:发送到标准错误
    syslog:server-address[,parameter=values]:发送到syslogmemory:size内存
    level:debug|info|notice|warn|error|crit|alter|emerg

下一篇 nginx http模块详解(三)

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-03-08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • nginx的安装
    • yum安装
      • 编译安装:
        • nginx编译的目录结构
    • nginx命令
    • nginx配置
    • 主配置文件结构:四部
    • Main 全局配置段常见的配置指令分类
      • 正常运行必备的配置:
        • 性能优化相关的配置:
          • 事件驱动相关的配置:
            • 调试和定位问题:
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档