程序员

Nginx配置说明

2019-04-09  本文已影响0人  zpwd63

一、Nginx在CentOS 7 中的安装与配置位置

nginx: /usr/sbin/nginx /usr/lib64/nginx /etc/nginx /usr/share/nginx

其中我们重点关注/usr/sbin/nginx/etc/nginx 目录。

/usr/sbin/nginx:nginx启动命令,通过该文件可以直接启动nginx。
/etc/nginx:该目录下我们重点关心主配置文件nginx.conf,该文件用于配置nginx。当然配置文件支持外部文件引入,目前暂不考虑,仅关心nginx.conf文件即可。

二、nginx.conf配置文件说明

  1. 全局配置

全局配置默认从第一行配置开始到event之间的内容,主要影响nginx整体运行,所有配置所用于全局。

  1. event模块

event模块配置主要影响nginx与用户的网络连接。这部分配置对nginx的性能影响较大,应根据实际情况进行配置。

  1. http模块

http模块是整个nginx的重要组成部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都可以在这个模块中进行配置。

  1. server模块

server模块的配置相当于定义一个虚拟主机,一个http模块下可以定义多个server模块,每个server模块可以定义自己的主机访问规则。

所有配置分层级嵌套,示例和说明如下:(编写配置信息时应注意;结尾)

# 全局定义
user  nginx;
worker_processes  1;  # 全局有效

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;

# 局部定义 通过“{}”符号限定作用区域
events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;  #网络请求类型定义。这里引用外部文件,具体类型可以查看该文件。  
    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  /var/log/nginx/access.log  main; #网络请求日志记录文件定义

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65; #保持连接时间

    #gzip  on; #是否开启gzip压缩功能

    include /etc/nginx/conf.d/*.conf; # 引用外部配置文件
}

外部配置文件server配置

server {
    listen       80; #nginx监听端口设置
    server_name  localhost; #服务器请求名定义

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main; #请求日志

    #请求uri规定定义
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    #error_page  404              /404.html; #错误页面定义

    # 错误页面定义
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}

  1. user nginx;

    该指令用于配置运行nginx服务器的用户或用户组,此处为用户nginx拥有运行权限,语法为:user user [group] 。如果运行用户不存在,则会报错。

    如果对运行用户不做限制,可以通过#注释该行,或者配置user nobody;

  2. worker_processes 1;

    工作进程数配置,语法:worker_processes number | auto
    number:nginx最多产生的进程数量。
    auto:nginx自动检测进程数量。

  3. error_log /var/log/nginx/error.log warn;

    日志记录,语法:error_log 日志文件位置 日志级别。

  4. pid /var/run/nginx.pid;

    pid记录文件定义,语法:pid 记录文件位置。

  5. http和server配置在实例代码中通过注解的方式说明。

上一篇下一篇

猜你喜欢

热点阅读