nginx基本配置

摘自《Nginx高性能web服务器实战教程》

1、配置文件结构

说明
main主要控制nginx子进程所属的用户和用户组、派生子进程数、错误日志位置与级别、pid位置、子进程优先级、进程对应CPU、进程能够打开的文件描述符数目等
events控制nginx处理连接的方式
httpnginx处理http请求的主要配置块
servernginx中主机的配置块,可用于配置多个虚拟主机
locationserver中对应目录级别的控制块,可以有多个

2、默认配置指令

指令说明
worker_processes配置nginx的工作进程数,一般设为CPU总核数或者总核数的两倍
worker_connections配置nginx允许单个进程并发连接的最大请求数
include用于引入配置文件
default_type设置默认文件类型
sendfile默认值为on,表示开启高效文件传输模式
keepalive_timeout设置长连接超时时间(秒)
listen监听端口,默认80
server_name设置主机域名
root设置主机站点根目录地址
index指定默认索引文件
error_page自定义错误页面

3、location/ {}与location=/ {}的区别
location/ {}遵循普通location的最大前缀匹配,而location=/ {}则遵循精准匹配,也就是只匹配设置的目录,且禁止搜索正则location。前者相当于站点默认设置,后者则用于更细粒度的匹配,效率更高。

4、禁用正则匹配
利用=和^~可以禁止正则匹配,即满足=或^~条件的站点,不会再去匹配后续的正则规则。区别只是在于=是精确匹配,^~依旧遵循最大前缀规则。

5、alias和root的区别
举个例子:请求为/img/head.png
如果设置的规则是:

location /img/{
    alias /var/www/image/;
}

则映射结果为:/var/www/image/head.png。
如果设置的规则是:

location /img/{
    root /var/www/image/;
}

则映射结果为:/var/www/image/img/head.png。
也就是说root映射的结果追加了location匹配的部分。

6、server_name指令   server配置块中,server_name除了精准配置ip和域名外,还可以通过通配符和正则进行匹配,如:

#通配符
server_name *.test.com;
server_name www.*;
#正则匹配
server_name ~^(?.*)\.domain\.com$;

7、开启目录列表
为了安全考虑,nginx的目录功能是关闭的,如果需要开启该功能,则可以在http、server或location配置块中通过autoindex配置开启。区别在于,在http中配置对所有站点有效;在server中配置对指定站点有效;在location中配置,对指定目录有效。

autoindex on

效果如下:

8、子配置引入
nginx的配置文件nginx.conf中可以配置多个server,但如果所有虚拟机都配置在这个文件当中,则会造成配置文件臃肿,不利维护,故nginx还提供引入子配置文件的机制,具体操作如下: 首先建立子配置文件的存放目录,即在默认配置目录conf下建立新目录subconf(完整目录为/usr/local/nginx/conf/subconf)。

#建立子配置文件目录
mkdir subconf
#建立配置文件
touch subhost.conf

在配置文件配置虚拟机相关配置:

server{
    listen 10000;
    server_name localhost;
    root html;
    index index.html;
}

然后在主配置nginx.conf中引入子配置文件:

include subconf/subhost.conf;

平滑重启即可。

nginx -s reload

转载于:https://my.oschina.net/u/4108765/blog/3067680

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值