什么是nginx?
nginx是一个高性能的Http和反向代理web服务器。其它常见的web服务器有apache,tomcat,iis等。
nginx的特点
nginx具有非常多的优点,博主暂时列举了一下几个优点,并且由于时间的限制,并没有深入研究,得到一些确切的数据。等有时间了,会回过头来试验。
支持高并发连接
nginx可以轻松支持几万的高并发。
内存消耗小
成本低廉
首先nginx是免费开源的web服务器,并且它的性能比较优越,也就相当于节省了服务器资源。
负载均衡
nginx可以实现负载均衡,就是通过一定的路由算法,将请求均衡的分配到多个服务器应用上。
反向代理
nginx可以实现反向代理的功能。举个例子,比如说一台服务器上部署了多个应用程序(这个应用程序的端口并不一致),我们可以借助于nginx的转发功能,将不同的url规则路由到不同的应用程序上。常见于前后端分离的应用。
支持热部署
nginx可以支持配置文件的热加载,可以支持nginx版本的热升级
nginx文件目录
目录介绍
- conf,配置文件
- docs,文档
- logs,日志文件
- nginx.exe nginx
nginx常用命令
这里介绍一下windows环境下nginx的常用命令,并且命令需要在nginx.exe所在目录下执行。
启动
#也可以直接运行nginx.exe文件
start nginx
正常停止
nginx.exe -s quit
快速停止
nginx.exe -s stop
重新加载
nginx -s reload
常见错误
windows下nginx启动报错
在windows上安装nginx的时候,nginx会启动错误。错误信息如下:
bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socket in a way forbidden by its access permissions)
这是因为windows系统自带了iis web服务器,iis已经占用了80端口,小伙伴们可以自行百度一下解除占用教程。
windows下nginx进程无法彻底杀死
在使用nginx停止命令时,nginx不会出现无法彻底杀死的情况。图中的nginx.pid记录了nginx的进程pid。
此时如果使用程序管理器 或者 taskkill /pid /F 端口号杀死nginx,无法正常停止。
解决方法
taskkill /f /t /im nginx.exe
nginx的基本配置介绍
#使用的用户
#user nobody;
#指定的工作进程树
worker_processes 1;
#指定错误日志存放的路径
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#指定pid的存放路径
#pid logs/nginx.pid;
events {
#允许的连接数
worker_connections 1024;
}
#http服务器配置
http {
#导入支持的mime文件类型
include mime.types;
#默认mime类型 二进制流
default_type application/octet-stream;
#日志的输出格式
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#日志的存放路径
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#一个连接请求完之后还需要保持多长时间
#keepalive_timeout 0;
keepalive_timeout 65;
#是否开启gzip压缩,需要服务器和浏览器同时支持
#gzip on;
#虚拟主机配置
server {
#监听端口
listen 80;
#监听域名
server_name www.test.com;
#字符集
#charset koi8-r;
#日志存放路径
#access_log logs/host.access.log main;
#路径定位
location / {
#转发配置
proxy_pass http://localhost:8080/;
}
#错误状态码 页面配置
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
#根目录配置
root html;
}
}
}
推荐书籍
<<实战Nginx.取代Apache的高性能Web服务器.2010.pdf>>