• nginx常用配置


    nginx常用配置

    ./nginx -v 查看nginx版本

    ./nginx -V 查看nginx的编译版本及配置的参数

    ./nginx -t 主要验证nginx.conf配置文件是否有问题

    ./nginx -c 根据配置文件的位置启动nginx

    我的本机nginx配置文件路径是 /usr/local/nginx/conf/ 这个目录下面,其中nginx.conf是主配置文件。Nginx.conf配置文件主要分成四个部分:

    - main (全局设置) 。
    - sever (虚拟主机设置)。
    - upstream负载均街服务器设置。
    - location(URL匹配特定位置的设置)。

    **说明:**

    ​ main部分设置的命令将影响其他所有设置。 server 部分的命令主要用于指定主机和端口;。upstream命令主要用于负载均衡,设置一系列的后端服务器。 location 部分用于匹配网页位置。这四者之间的关系式server继承main, location 继承server, upstream 既不会继承其他设置也不会被继承。

    ​ 在这四个部分当中,每个部分都包含若干命令,这些命令主要包含Nginx的主模块命令,事件模块命令,HTTP核心模块命令,同时每个部分还可以使用其他HTTP模块命令(例如HTTP SSL模块,HttpGzip Static模块和Http Addition模块等)。

    ```conf
    #user nobody;
    worker_processes 1;

    #error_log logs/error.log;
    #error_log logs/error.log notice;
    #error_log logs/error.log info;

    #pid logs/nginx.pid;


    events {
    use epoll;
    worker_connections 1024;
    }

    /*
    以上这块配置代码是对nginx全局属性的配置。
    user :主模块命令, 指定Nginx的worker进程运行用户以及用户组,默认由nobody账号运行(默认nginx)。
    worker processes: 指定Nginx要开启的进程数。
    error log:用来定义全局错设日志文件的路径和日志名称。日志输出级别有debug,info,notice,warn,error,crit 可供选择,其中debug输出日志最为详细,面crit输出日志最少。
    pid: 用来指定进程id的存储文件位置。
    event:设定nginx的工作模式及连接数上限,其中参数use用来指定nginx的工作模式(这里是epoll,epoll是多路复用IO(I/O Multiplexing)中的一种方式),nginx支持的工作模式有select ,poll,kqueue,epoll,rtsig,/dev/poll。其中select和poll都是标准的工作模式,kqueue和epoll是高效的工作模式,对于linux系统,epoll是首选。
    worker_connection是设置nginx每个进程最大的连接数,默认是1024,所以nginx最大的连接数max_client=worker_processes * worker_connections。进程最大连接数受到系统最大打开文件数的限制,需要设置ulimit。
    */


    #下面部分是nginx对http服务器相关属性的设置
    http {
    include mime.types; 主模块命令,对配置文件所包含文件的设定,减少主配置文件的复杂度,相当于把部分设置放在别的地方,然后在包含进来,保持主配置文件的简洁
    default_type application/octet-stream; 默认文件类型,当文件类型未定义时候就使用这类设置的。

    #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 指定nginx日志的格式
    # '$status $body_bytes_sent "$http_referer" '
    # '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log logs/access.log main;

    sendfile on; 开启高效文件传输模式(zero copy 方式),避免内核缓冲区数据和用户缓冲区数据之间的拷贝。
    #tcp_nopush on;

    #keepalive_timeout 0; 客户端连接超时时间
    keepalive_timeout 65;

    #gzip on; 设置是否开启gzip模块

    #server段是虚拟主机的配置 这里可以写在别的文件中 然后在包含进来,比如写在/usr/local/nginx/vhost/xxx.conf 目录某文件中 然后在包含进来,可以包含多个文件 include /usr/local/nginx/vhost/*;
    server {
    listen 80; 虚拟主机的服务端口
    server_name localhost; 用来指定ip或者域名,多个域名用逗号分开

    #charset utf-8;

    #access_log logs/host.access.log main;

    location / { 地址匹配设置,支持正则匹配,也支持条件匹配,这里是默认请求地址,用户可以location命令对nginx进行动态和静态网页过滤处理
    root html; 虚拟主机的网页根目录
    index index.html index.htm; 默认访问首页文件
    }

    #error_page 404 /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    root html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    location ~ .php$ { 将以php为后缀的文件转发到 FastCGI处理. 使用FastCGI默认配置。本地8088端口处理
    fastcgi_pass http://127.0.0.1:8088;

    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    }
    #静态文件,nginx自己处理
    location ~ ^/(images|javascript|js|css|flash|media|static)/ {
    root /var/www/public/images;
    expires 30d; #缓存时间30天,静态文件更新不多,过期时间可以设大一点。
    }
    #配置Nginx状态的地址
    location /NginxStatus {
    stub_status on;
    access_log on;
    auth_basic "NginxStatus";
    auth_basic_user_file conf/htpasswd;
    }

    #配置nginx负载均衡的服务器列表
    upstream mysvr {
    #weigth参数表示权值,权值越高被分配到的几率越大
    #本机上的Squid开启3128端口
    server 192.192.199.111:88 weight=5;
    server 192.192.199.111:80 weight=1;

    }

    }

    }

  • 相关阅读:
    项目总结_写代码
    项目总结_el表达式
    项目总结plc_过滤器规则(filter)_忽略过滤的js和css文件
    tomcat 启动错误
    每天学点java_Eclipse修改author名
    每天学点java_FileOutputSteam类
    每天学点java_File类
    11.28日日记
    《深入理解计算机系统》学习中期
    开始《深入理解计算机系统》
  • 原文地址:https://www.cnblogs.com/zhaoyang-1989/p/13270361.html
Copyright © 2020-2023  润新知