进入nginx目录,排除temp文件后,剩余四个目录
[root@elkzabbix01 nginx]# ls -l | grep -v temp
总用量 36
drwxr-xr-x. 2 root root 4096 7月 12 20:42 conf → 配置文件
drwxr-xr-x. 2 root root 4096 7月 12 20:42 html → 站点信息
drwxr-xr-x. 2 root root 4096 7月 12 20:49 logs → 日志信息
drwxr-xr-x. 2 root root 4096 7月 12 20:42 sbin → 启动命令
cd /html
里面有文件index.html ,这个文件一般默认是网站的首页
下面进入conf文件夹,下面有一个 nginx.conf 文件
运维有一个很重要的思想叫最小化学习,所以我们要把配置文件简化一下:
简化命令:
egrep -v "#|^$" nginx.conf >> a.conf
^代表行首
$代表行尾
^$意思就是行首之后就是行尾,中间什么也没有,所以代表空行
worker_processes 1; 默认进程有一个
一个worker可以处理多少并发连接
events {
worker_connections 1024;
}
那么有多少个worker呢???可以看配置文件第一行
[root@elkzabbix01 conf]# ps -ef | grep nginx
root 8398 1 0 Jul12 ? 00:00:00 nginx: master process /app/zpy/nginx/sbin/nginx
zpy 8399 8398 0 Jul12 ? 00:00:00 nginx: worker process
可以看到就一个worker process ,一般认为worker process 与cpu 核数相当
所以nginx最大并发连接数是怎么计算的呢 ??
worker process 乘以 worker_connections
-----------------------
http模块
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
下面这个叫做server标签,一个server标签代表一个虚拟主机
server {
listen 80; 监听端口
server_name localhost; 域名
location / { / 代表直接在浏览器输入 http://10.0.70.3
root html;
index index.html index.htm; 这个代表首页文件
}
error_page 500 502 503 504 /50x.html;
location = /50x.html { /50.x.html代表直接在浏览输http://10.0.70.3/50.x.html
root html;
}
nginx 虚拟主机的概念
所谓的虚拟主机,在web服务里就是一个独立的网站站点,这个站点对应独立的域名(也可能是IP或者端口),具有独立程序及资源目录,可以独立的对外提供服务供用户访问apache是如何定义虚拟主机的 ?
配置文件中 <VirtualHost> </VirtualHost> 内
nginx是如何定义虚拟主机的?
在配置文件中server{} 的标签
虚拟主机一般分为如下三类:
基于域名的虚拟主机
基于端口的虚拟主机
基于ip的虚拟主机
配置基于域名的虚拟主机
server {
listen 80;
server_name www.vipdailiang.com;
location / {
root html/www;
index www.html ;
}
}
1)首先需要在/app/zpy/nginx/html下创建 www目录
mkdir -p /app/zpy/nginx/html/www
2)在www目录下创建www.zipeiyi.com的内容
echo "www.vipdailiang" >> /app/zpy/nginx/html/www/
3)最重要的一步,nginx一旦应用在企业环境中,它的作用会变得很重要,所以修改了配置文件,不要贸然重启,需要先检查一遍nginx配置文件的合理性
/app/zpy/nginx/sbin/nginx -t
nginx: the configuration file /app/zpy/nginx-1.8.1//conf/nginx.conf syntax is ok
nginx: configuration file /app/zpy/nginx-1.8.1//conf/nginx.conf test is successful
4)平滑重启nginx
/app/zpy/nginx/sbin/nginx -s reload
备注:
如果nginx参数过多记不住怎么办??
/app/zpy/nginx/sbin/nginx -h
Options:
-?,-h : this help
-v : show version and exit
-V : show version and configure options then exit
-t : test configuration and exit
-q : suppress non-error messages during configuration testing
-s signal : send signal to a master process: stop, quit, reopen, reload
-p prefix : set prefix path (default: /app/zpy/nginx-1.8.1//)
-c filename : set configuration file (default: conf/nginx.conf)
-g directives : set global directives out of configuration file
最后在浏览器输入10.0.70.3
但是如果输入:
这是因为你电脑本机解析不到的原因:
有两种解析的办法:
修改本机的host文件(linux是/etc/hosts ,windows的C\windows\system32\drivers\etc\hosts)
添加10.0.70.3 www.vipdailiang.com
在本地DNS里面加入域名对应关系
最后效果如下,至此基于域名的虚拟主机配置完毕
配置多个基于域名的虚拟主机
server {
listen 80;
server_name www.vipdailiang.com;
location / {
root html/www;
index www.html ;
}
}
server {
listen 80;
server_name bbs.vipdailiang.com;
location / {
root html/bbs;
index bbs.html ;
}
}
这样你就可能会想了,怎么都是80端口,那么我在浏览器输入 会出现什么???
别急,细细道来
我做了一个实验,发现是下图的结构:
如果你用ip进行测试的化,那么应该是按照 server{}的顺序来的
总结:基与域名的虚拟主机,就不要这样测试了,应该用域名测试
到此基于域名的nginx虚拟主机讲解完毕
配置基于端口的虚拟主机
server {
listen 8001;
server_name www.vipdailiang.com;
location / {
root html/www;
index www.html ; → 这里面内容改为 ism
}
}
server {
listen 8002;
server_name www.vipdailiang.com;
location / {
root html/bbs;
index bbs.html ; →这里面内容改为imp
}
}
netstat -tunpl | grep nginx ,可以看到nginx起了8001与8002两个端口
tcp 0 0 0.0.0.0:8001 0.0.0.0:* LISTEN 8398/nginx
tcp 0 0 0.0.0.0:8002 0.0.0.0:* LISTEN 8398/nginx
那么该怎么检测呢??
curl www.vipdailiang.com:8001
ism
curl www.vipdailiang.com:8002
imp
配置基于IP的虚拟主机
这个需要有多块网卡,nginx服务器需要多个ip
这个在生产环境中极为少见,这里就不做解释了
nginx 其他基础配置项
添加状态标签
配置文件内容:
server {
listen 8003;
server_name status.nginx_1.com;
stub_status on;
access_log off;
}
访问
Active connections:3
server accepts handled requests
75 75 44
Reading:0 Writing:1 Waiting:2
解释:
第一个server表示nginx启动到现在共处理了75个连接;
第二个accepts表示nginx启动到现在共成功创建了75次握手
请求丢失次数=(握手数-连接数),可以看出没有丢失请求;
第三个handled requests 表示共处理了44次请求
Reading:nginx 读取到客户端的Header信息数
Writing:nginx 返回给客户端的Header信息数
Waiting:nginx 已经处理完正在等候下一次请求指令的驻留连接,开启keep-alive的情况下。
这个值等于 active - (reading + writing)
ok。。至此nginx配置文件就讲解完成了