# 介绍
Nginx(发音同engine x)是异步框架的网页服务器,也可以用作反向代理、负载平衡器和HTTP缓存。
# 正向代理
客户端无法直接访问目标服务器,通过正向代理将客户端请求转发到要访问的服务器上,服务器不知道客户端是谁。
# 反向代理
客户端访问目标服务器,反向代理充当路由的作用,将请求转发至合适的服务器上。
# 安装
- 下载地址
- 此次我是用windows系统进行安装,下载windows版本压缩包解压即可。
# 常用命令
启动
$ nginx
$ nginx start
# 我试了这个命令居然是可以的
$ start nginx
快速停止
nginx -s stop
优雅停止(当前工作流完成请求后关闭)
nginx -s quit
不停止服务的情况下重新加载配置文件
nginx -s reload
# 配置文件
# 基本模块
- http
- server
- location
- events
# 基本结构
http {
events {
}
# 一个server是一个虚拟服务
server {
# location可以说是在匹配路由
location / {
}
}
# 基本配置示例
server {
# 配置端口
listen 81;
# 配置域名或ip
server_name https://susan007.com;
location /admin {
root html_admin;
index index_admin.html;
}
}
}
# 反代理示例
# 反向代理
server{
listen 80;
server_name susan007.com
location / {
proxy_pass https://susan007.github.io; # 要访问susan007.com,将其反向代理到susan007.github.io
}
}
# 负载均衡示例
http{
upstream backend {
server 10.1.1.1:6001 weight=1;
server 10.1.1.1:6002 weight=1;
server 10.1.1.2:6003 weight=2; # 性能好就做得多一些
}
server {
location / {
proxy_pass https://backend;
}
}
}
# 常见错误
nginx bind to 0.0 0.0 80 failed 10013
启动nginx后在任务管理器中看不到nginx服务,打开log发现出错了,报错如标题所示。
# 解决办法一
- 将conf配置文件中的80端口改成81(或者别的)即可。
# 解决办法二
- 查找占用80端口的服务,修改其端口。
// 查看端口占用情况
netstat -aon | findstr :80
// 根据pid找到对应名称
tasklist|findstr "4300"
// 关掉对应的服务