网站建设广告投放是什么,搭建流程,徐州网站建设网络推广,h5 移动 网站 开发Nginx的配置文件的组成部分#xff1a;
主配置文件#xff1a;nginx.conf子配置文件#xff1a;include conf.d/*.conf
全局配置
nginx 有多种模块
核心模块#xff1a;是 Nginx 服务器正常运行必不可少的模块#xff0c;提供错误日志记录 、配置文件解析 、事件驱动机…Nginx的配置文件的组成部分
主配置文件nginx.conf子配置文件include conf.d/*.conf
全局配置
nginx 有多种模块
核心模块是 Nginx 服务器正常运行必不可少的模块提供错误日志记录 、配置文件解析 、事件驱动机制 、进程管理等核心功能标准HTTP模块提供 HTTP 协议解析相关的功能比如 端口配置 、 网页编码设置 、 HTTP响应头设置 等等可选HTTP模块主要用于扩展标准的 HTTP 功能让 Nginx 能处理一些特殊的服务比如Flash 多媒体传输 、解析 GeoIP 请求、 网络传输压缩 、 安全协议 SSL 支持等邮件服务模块主要用于支持 Nginx 的 邮件服务 包括对 POP3 协议、 IMAP 协议和 SMTP协议的支持Stream服务模块: 实现反向代理功能,包括TCP协议代理第三方模块是为了扩展 Nginx 服务器应用完成开发者自定义功能比如 Json 支持、 Lua 支持等
1. 关闭版本或修改版本
查看nginx版本信息 关闭版本号 [rootlocalhost ~]# vim /etc/nginx/nginx.conf //修改配置信息 http { //在http语句块中进行修改 server_tokens off; //关闭版本 [rootlocalhost ~]# nginx -s reload //重新加载 注意这是唯一一个调优是在http 语句块的其他都在全局 2. 修改启动的进程数 worker_processes 1; #系统默认允许的启动工作进程数数量和你真实的cpu数量有关 worker_processes auto; #如果设置为auto是你真实的cpu数量 3. cpu与work进程绑定
将Nginx工作进程绑定到指定的CPU核心默认Nginx是不进行进程绑定的绑定并不是意味着当前nginx进程独占一个核心CPU但是可以保证此进程不会运行在其他核心上这就极大减少了nginx的工作进程在不同的cpu核心上的来回跳转减少了CPU对进程的资源分配与回收以及内存管理等因此可以有效的提升nginx服务器的性能。 CPU序号 CPU MASK: 000000010号CPU 000000101号CPU ................ 100000007号CPU worker_cpu_affinity 00000001 00000010 00000100 00001000;第0号---第3号CPU #序号绑定cpu 亲缘性 worker_cpu_affinity 00000101 00001010; #同一个work 可以绑定 两个cpu可以这么写 但是不建议本来就是 不希望飘动这样也是飘动 4. nginx进程的优先级
当你想将nginx的work进程的优先级调高可以使用nice设置。 worker_priority 0; //工作进程优先级-20~20(19) 5. 调试work进程打开的文件的个数
nginx 默认所有子进程一共可以打开的文件数量有限所以需要优化数值。
worker_rlimit_nofile 65536; //所有worker进程能打开的文件数量上限包括:Nginx的所有连接例如与代理服务器的连接等而不仅仅是与客户端的连接另一个考虑因素是实际的并发连接数不能超过系统级别的最大打开文件数的限制。 //最好与ulimit -n 或者limits.conf的值保持一致。
events块nginx工作模式
events 块涉及的指令主要影响 Nginx 服务器与用户的网络连接常用的设置包括是否开启对多 work process 下的网络连接进行序列化是否允许同时接收多个网络连接选取哪种事件驱动模型来处理连接请求每个 work process 可以同时支持的最大连接数等。
events I/O模型调优
events {worker_connections 65536; //设置单个工作进程的最大并发连接数use epoll;//使用epoll事件驱动Nginx支持众多的事件驱动比如:select、poll、epoll只能设置在events模块中设置。accept_mutex on;//on为同一时刻一个请求轮流由work进程处理,而防止被同时唤醒所有worker,避免多个睡眠进程被唤醒的设置默认为off新请求会唤醒所有worker进程,此过程也称为惊群因此nginx刚安装完以后要进行适当的优化。建议设置为onmulti_accept on;//ON时Nginx服务器的每个工作进程可以同时接受多个新的网络连接此指令默认为off即默认为一个工作进程只能一次接受一个新的网络连接打开后几个同时接受多个。建议设置为on
}
http块http设置
http 是一个大的语句块包含若干个小的语句块比如server语句块
http {include /etc/nginx/mime.types;#include 指令用于将其他文件或目录中的配置内容包含到当前位置。...... #各server的公共配置server { #每个server用于定义一个虚拟主机,第一个server为默认虚拟服务器...}server { ...server_name #虚拟主机名root #主目录#sever 下的 root指定了主页文件的位置alias #路径别名location [OPERATOR] URL { #指定URL的特性...if CONDITION {...}}}
}
server块主机设置
一个server就是一个虚拟主机
server作用对主机的设置例如端口号、ip地址、域名、主站点、日志 具体参考官方文档
1.1 server下的root
root指定了主页文件的位置
server {
listen 80;
server_name www.pc.com;
root /data/html/;location /cxk {root /data/cxk}
}
root 类似与追加 实际 你该访问的页面 是 /data/cxk/cxk/
1.2 server块 构建虚拟主机
基于域名
实验内容 用一台服务器生成2个站点手机端、pc端
实验步骤
编辑主配置文件
[rootnode1 ~]# vim /apps/nginx/conf/nginx.conf //编辑主配置文件http {include mime.types;include /apps/nginx/conf.d/*.conf; //添加include语句default_type application/octet-stream;server_tokens off;[rootnode1 ~]# nginx -s reload //重新加载
编辑子配置文件
[rootnode1 data]# mkdir {pc,phone} //建立pc、phone文件夹
[rootnode1 data]# cd pc
[rootnode1 pc]# echo pc index.html //生成pc页面
[rootnode1 pc]# cat index.html
pc
[rootnode1 pc]# cd ..
[rootnode1 data]# cd phone/
[rootnode1 phone]# echo phone index.html //生成phone页面
[rootnode1 phone]# cat index.html
phone[rootnode2 ~]# vim /etc/hosts //编辑主机2配置文件添加域名
172.16.88.8 www.pc.com www.phone.com
准备页面
[rootnode1 conf.d]# cd /apps/nginx/conf.d //切换到子配置文件目录下
[rootnode1 conf.d]# vim pc.conf //编辑子配置文件pc.confserver {
listen 80;
server_name www.pc.com;
root /data/pc/;
}[rootnode1 conf.d]# cp pc.conf m.conf
[rootnode1 conf.d]# vim m.conf //编辑子配置文件m.conf
server {
listen 80;
server_name www.phone.com;
root /data/phone/;
}[rootnode1 conf.d]# nginx -t //检查文件格式
[rootnode1 conf.d]# nginx -s reload //重新加载
验证 [rootnode2 ~]# curl www.pc.com pc [rootnode2 ~]# curl www.phone.com phone 基于端口 修改配置文件 [rootnode1 conf.d]# vim pc.conf //编辑子配置文件pc.conf server { listen 9527; server_name www.pc.com; root /data/pc/; } [rootnode1 conf.d]# vim m.conf //编辑子配置文件m.conf server { listen 80; server_name www.phone.com; root /data/phone/; } [rootnode1 conf.d]# nginx -t //检查文件格式 [rootnode1 conf.d]# nginx -s reload //重新加载 准备页面 验证 [rootnode2 ~]# curl 172.16.88.8 phone [rootnode2 ~]# curl 172.16.88.8:9527 pc 基于ip 修改配置文件 [rootnode1 conf.d]# vim pc.conf //编辑子配置文件pc.conf server { listen 172.16.88.8:80; server_name www.pc.com; root /data/pc/; } [rootnode1 conf.d]# ifconfig ens33:0 172.16.88.100 //添加一个虚拟ip [rootnode1 conf.d]# vim m.conf //编辑子配置文件m.conf server { listen 172.16.88.100:80; server_name www.phone.com; root /data/phone; } [rootnode1 conf.d]# nginx -s reload //重新加载 准备页面 验证 [rootnode2 ~]# curl 172.16.88.8 pc [rootnode2 ~]# curl 172.16.88.100 phone alias 别名
alise相当于置换
server {listen 80;server_name www.pc.com;location /cxk {root /data/cxk/;//相当于追加访问172.16.88.8/cxk等于访问172.16.88.8/data/cxk/cxk}location /cxk {alias /data/;//相当于替换访问172.16.88.8/cxk就是访问172.16.88.8/data/}
} location块URL匹配
在一个server中location配置段可存在多个用于实现从url到文件系统的路径映射。
语法规则 符号 含义 举例 精确匹配 location /cxk ^~ 以什么开头 location ^~ /cxk ~ 开启正则表达式区分大小写 location ~ /cxk ~* 开启正则表达式不区分大小写 location ~* /cxk 不加符号 匹配起始于此uri的所有的uri location /cxk 匹配优先级从高到低 ^~ ~/~*不带符号 前缀匹配 ^~ 不带符号
正则匹配 ~ ~* 先找出所有的前缀匹配,最后再看正则匹配