Nginx安装目录是:/usr/local/nginx/ 通过/usr/local/nginx/sbin/nginx命令执行以下操作
nginx #启动Nginx
nginx -s stop #强制停止Nginx服务
nginx -s quit #正常停止
nginx -s reload #重新加载Nginx配置文件 然后重启Nginx
nginx -c filename #为 Nginx 指定一个配置文件
nginx -t #验证配置文件是否有语法错误
nginx -V #显示版本信息
nginx -V #显示版本和配置选项信息
配置文件的结构
main 配置段
event{} 定义event模型工作特性
http{} 定义http协议相关配置
server{} 虚拟主机配置 http中可以有多个server{}
location{} 根据URL匹配的配置
user nobody; #指定Nginx Worker进程运行用户,默认是nobody帐号
user nobody nobody;
pid /var/run/nginx/nginx.pid #指定存储nginx主进程PID的文件路径
daemon {on|off} #是否以守护进程运行进程nginx
worker_processes 2; #指明了nginx要开启的进程数
server_tokens off; #隐藏Nginx版本号
enevt{
worker_connections 1024; #每一个worker进程能并发处理的最大连接数
use [epoll | rtsig | select | poll]; #指明使用的事件模型
accept_mutex on; ##设置网路连接序列化,防止惊群现象发生
accept_mutex_delay 500ms; #果一个进程没有互斥锁,它将延迟至少多长时间
multi_accept on; #设置一个进程是否同时接受多个网络连接
}
http{
include mime.types; #文件扩展名与文件类型映射表
default_type application/octet-stream; #默认文件类型,默认为text/plain
keepalive_timeout 65; #连接超时时间,可以在http,server,location块
gzip on; #开启gzip资源压缩
server_tokens off; #隐藏Nginx版本号
client_max_body_size 8m; #上传文件的大小限制,可以在http,server,location块
server {
.........
}
location / {
.........
}
}
server {
listen 80; #监听端口
server_name www.endvv.com #监听域名地址
root /www/web/public; #设置网站目录
access_log /www/logs/acces.log #设置网站日志
error_log /www/logs/error.log #设置网站错误日志
error_page 500 502 503 504 /50x.html; #定义错误提示页面
client_max_body_size 8m; #上传文件的大小限制,可以在http,server,location块
gzip on; #开启gzip资源压缩
}
#处理php请求到fpm端口
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
#限制IP访问admin目录
location ^~ /admin/ {
allow 1.1.1.1 #只允许1.1.1.1访问admin目录
deny all; #全部拒绝
}
#设定查看Nginx状态的地址
location /NginxStatus {
stub_status on;
access_log on;
}
语法: location[ = | ~ | ~* | ^~ | @ ] /uri/ {...}
配置块: server location会尝试根据用户请求中的URI来匹配上面的/uri表达式,如果可以匹配,就选择 location{}块中的配置来处理用户请求。
location 表达式类型
~ 正则匹配,区分大小写;
~* 正则匹配,不区分大小写;
^~ 普通字符匹配。使用前缀匹配。如果匹配成功,则不再匹配其他location;
= 普通字符精确匹配。也就是完全匹配;
/ 任何没有匹配成功的,都会匹配这里处理
优先级:
等号类型 (=) 的优先级最高。一旦匹配成功,则不再查找其他匹配项
前缀普通匹配 (^~) 优先级次之。不支持正则表达式。使用前缀匹配,如果有多个 location 匹配的话,则使用表达式最长的那个
正则表达式类型 (~ ~*) 的优先级次之。一旦匹配成功,则不再查找其他匹配项
常规字符串匹配,如果有多个 location 匹配的话,则使用表达式最长的那个