赞
踩
什么是Nginx
Nginx是一种很流行的Web服务器软件,具备高性能、高拓展性、高可靠性、低内存耗等优势。能够反向代理HTTP、HTTPS、SMTP、POP3、IMAP,也可以作为一个负载均衡器和HTTP缓存。同时他还是一个免费的开源的高性能的HTTP服务器。Nginx以其高性能、稳定性、丰富的特性、以及简单配置和低资源消耗而著称。
与传统的服务器不同,Nginx不依赖线程处理请求。相反,它使用了一个更具可拓展性的事件驱动(异步)体系结构。这种体系结构使用较小的内存量,但更重要的是内存的使用在负载的时候更加可预测。即使你不希望同时处理千个请求,但任然可以从Nginx的高性能和小内存占用中受益。
说明:因为此服务器笔者没有root权限,在所有的操作中都是以普通用户模式操作,如可以进入root的 朋友一下步骤即可全部省略速冻
Nginx的启动和配置
安装好Nginx启动Nginx,启动Nginx并看是否处于运行状态。
sudo service nginx start
sudo service nginx status
查看版本信息
使用重定向、管道和sed来处理输出
nginx -V 2>&1 | sed 's/ /\n/g'
2>&1作用手机把标准错误的输出重定向到标准输出(其文件描述符为1),管道 | 将上一步命令nginx - V 2>&1 传递给sed进行处理。处理方式为s/ /\n/g,它是一个正则表达式,其含义为将空白换为换行输出。
表示Nginx已经启用了stub_status模块
配置文件
Nginx及其模块的工作方式是在配置文件中确定的,默认的配置文件(nginx.conf)存放在目录/etc/nginx下。
查看默认配置文件cat /etc/nginx/nginx.conf
不显示注释和空白行cat /etc/nginx/nginx.conf |grep -vE "#|^$"
grep去除带#的行和(空白行)
include这两行表示 /etc/nginx/conf.d/目录以.conf结尾的文件和目录/etc/nginx/site-enable/下的所有文件直接包含进来(可以理解为将文件直接复制到/etc/nginx/nginx.conf中)
server和location
一个典型完整的静态Web服务器还会包含多个server配置块,例如/etc/nginx/sites-enabled/default
查看nginx.conf的配置方式cat /etc/nginx/sites-enabled/default | grep -vE "#|^$"
# 虚拟主机的配置 server { # 侦听 80 端口,分别配置了 IPv4 和 IPv6 listen 80 default_server; listen [::]:80 default_server ipv6only=on; # 定义服务器的默认网站根目录位置 root /usr/share/nginx/html; # 定义主页的文件名 index index.html index.htm; # 定义虚拟服务器的名称 server_name localhost; # location 块 location / { try_files $uri $uri/ =404; } }
想修改Server的端口为8080 可以将listen 80 改为listen 8080
,访问网站的时候应该是网站:8080 如果80为端口可以省略不写。
想修改网站文件存放位置,修改root 即可
location配置块
location用于匹配请求URI(访问路径),location匹配方式有很多种:精准匹配,忽略大小写的正则匹配,大小写敏感的正则匹配,前半部分匹配语法:
location [ = | ~ | ~* | ^~ ] pattern {}
各个符号的含义
location = / { # [ 配置 A ] } location / { # [ 配置 B ] } location /documents/ { # [ 配置 C ] } location ^~ /images/ { # [ 配置 D ] } location ~* \.(gif|jpg|jpeg)$ { # [ 配置 E ] }
创建虚拟服务器
创建网页文件
cd /var/myweb/ sudo touch index.html
配置网页文件sudo vim index.html
<html>
<head>
<title>my website</title>
</head>
<body>
<h1>Hello, Shiyanlou!</h1>
</body>
</html>
配置文件
创建一个新的配置文件并编辑
server {
listen 8070 default_server;
root /var/myweb/;
index index.html index.htm;
server_name localhost;
location / {
try_files $uri $uri/ =404;
}
}
使用sudo nginx -t
检查是否有语法错误
出现OK重启nginxsudo service nginx restart
打开Web服务器输入localhost:8070,虚拟服务器已配置完毕。
为了后续的zabbix监控,需要做如下配置
新建一个conf文件并配置
server {
listen 8080 default_server;
server_name localhost;
location /nginx_status {
stub_status on;
#表示监听8080端口,用于URI/nginx_status
}
}
检查Nginx配置文件是否有语法错误,重启Nginx
打开localhost:8080/nginx_status,查看到七个活动中指标:
active connections – 活跃的连接数量
server accepts handled requests — accepts 表示总共处理了 1 个连接,handled 表示成功创建 1 次握手,requests 表示总共处理了 1 个请求
reading— 读取客户端的连接数
writing — 响应数据到客户端的数量
waiting — 开启 keep-alive 的情况下,这个值等于 active – (reading+writing),意思就是 Nginx 已经处理完正在等候下一次请求指令的驻留连接
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。