【Nginx教程2】Nginx 常用命令,Nginx 的配置文件
2. Nginx 常用命令
1 | https://www.bilibili.com/video/BV1zJ411w7SV?p=6 |
1 2 3 4 5 6 | cd /usr/local/nginx/sbin/ //进入nginx的目录. ./nginx -v //查看nginx的版本号. ./nginx //启动nginx ./nginx -s stop //停止nginx ./nginx -s reload //重新加载nginx ps -ef | grep nginx //查看nginx是否已成功启动 |
=================================
3. Nginx 的配置文件.
1 | https://www.bilibili.com/video/BV1zJ411w7SV?p=7 |
1 | /usr/local/nginx/conf/nginx.conf //配置文件位置 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 | #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 { worker_connections 1024; } http { include 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 logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { 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$ { # 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; #} } # another virtual host using mix of IP-, name-, and port-based configuration # #server { # listen 8000; # listen somename:8080; # server_name somename alias another.alias; # location / { # root html; # index index.html index.htm; # } #} # HTTPS server # #server { # listen 443 ssl; # server_name localhost; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 5m; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # location / { # root html; # index index.html index.htm; # } #} } |
Nginx 的配置文件 由三部份组成.
3-1. 全局块
从配置文件开始到 events 块之间的内容,主要会设置一些影响nginx服务器整体运行的配置指令
比如
1 | worker_processes 1; // worker_processes 值越大,可以支持的并发处理量也越多. |
3-2. events 块
events 块涉及的指令主要影响 nginx 服务器与用户的网络连接
比如
1 | worker_connections 1024; //#最大连接数 |
3-3. http 块
这是nginx 服务器配置中最频繁的部分,代理,缓存和日志定义等绝大多数功能和第三方模块的配置都在这里.
需要注意的是: http 块也可以包括 http 全局块,server 块
3-3-1. http 全局块
http 全局块配置的指令包含文件引入,MIME-TYPE定义,日志自定义,连接超时时间,单链接请求数上限等。
3-3-2. server 块
这块和虚拟主机有密切关系,虚拟主机从用户角度看,和一台独立的的硬件主机是完全一样的,
该技术的产生是为了节省互联网服务器硬件成本.
每个http块可以包括多个server 块,而每个server 块相当于一个虚拟主机.
而每个server块也分为全局 server块,以及可以同时包含多个location块.
3-3-2-1. 全局server 块
最常见的配置是本虚拟主机的监听配置和本虚拟主机的名称或IP配置.
3-3-2-2. location 块
一个server块可以配置多个location块.
这块的主要作用是基于nginx服务器接收到的请求字符串(例如 server_name/uri-string).对虚拟主机名称
(也可以是IP别名)之外的字符串(例如 前面的/uri-string)进行匹配,对特定的请求进行处理,地址空间,
数据缓存和应答控制等功能,还有许多第三方模块的配置也在这里进行