Nginx快速入门
Nginx是一款轻量级的Web服务器 / 反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。
一、安装
Step-1:官网下载Ngiax压缩包:Nginx
Step-2:Nginx常用命令(cmd命令行输入)
- 启动:
nginx.exe
/start nginx
- 停止:
nginx -s quit
/nginx -s stop
【stop是快速停止nginx,可能并不保存相关信息;quit是完整有序的停止nginx,并保存相关信息】 - 重新载入Nginx:
nginx -s reload
【当配置信息修改,需要重新载入这些配置】 - 重新打开日志文件:
nginx -s reopen
- 查看Nginx版本:
nginx -v
Step-3:浏览器测试请求路径 http://localhost:80(Nginx默认是80端口)
二、配置文件说明
2.1 全局块:设置一些影响Nginx服务器整体运行的配置指令
worker_processes 1; # 值越大,可以支持的并发处理量也越多,理想状态下跟 CPU 核心数相同。
2.2 events块:设置Nginx服务器与用户的网络连接
events {
worker_connections 1024; # 表示每个 work_processes 支持的最大连接数为 1024,
}
2.3 http块:配置代理、缓存、日志和第三方模块。
当前配置的是只反向代理服务端,第三章节展示反向代理多个服务端;
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80; # 监听的端口
server_name 144.26.36.36; # 监听的请求地址 (本机 IP 地址)
location / { # / 表示监听所有的请求路径
root html; # 以Nginx目录为根目录,root后面指定的目录开始进行访问
proxy_pass http://127.0.0.1:8080; # 反向代理 (转发) 地址
index index.html index.htm; # 设置默认的主页面
}
}
}
三、反向代理
实现同一端口根据不同请求分发代理:
- 访问 http://144.26.36.36:9090/prod/ => http://127.0.0.1:8080/
- 访问 http://144.26.36.36:9090/stage/ => http://127.0.0.1:8081/
server {
listen 9090;
server_name 144.26.36.36;
location ~ /prod/ {
proxy_pass http://127.0.0.1:8080;
}
location ~ /stage/ {
proxy_pass http://127.0.0.1:8081;
}
}
四、负载均衡
说明:负载均衡一共有四种方式:轮询(默认)、设置权重 weight 、使用 ip_hash 、使用fair。
1、轮询方式:即啥也不写;
upstream tomcatTwoPort {
server 127.0.0.1:8081;
server 127.0.0.1:8082;
}
2、设置权重:weight权重默认为1,权重越高被分配的客户端越多;
upstream tomcatTwoPort {
server 127.0.0.1:8081 weight=2;
server 127.0.0.1:8082 weight=3;
}
3、使用ip_hash:每个请求按访问的IP的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题;
upstream tomcatTwoPort {
ip_hash;
server 127.0.0.1:8081;
server 127.0.0.1:8082;
}
4、使用fair:按照后端服务器的响应时间来分配请求,响应时间短的优先分配;
upstream tomcatTwoPort {
server 127.0.0.1:8081;
server 127.0.0.1:8082;
fair;
}
Step-1:修改location,反向代理到上述配置。
location /
表示处理所有请求
proxy_pass http://tomcatTwoPort;
表示把请求都交给http://tomcatTwoPort来处理
location / {
proxy_pass http://tomcatTwoPort;
}
Step-2:然后增加一个upstream,用来指向这两个tomcat,weight表示权重,值越大,被分配到的几率越大。
不写 weight 默认使用轮询方式。
upstream tomcatTwoPort {
server 127.0.0.1:8081 weight=1;
server 127.0.0.1:8082 weight=3;
}
Step-3:使用nginx -s reload
重新加载配置。
五、动静分离
在项目文件管理中,会针对静态文件单独存储,比如图片等。
server {
listen 80; # 监听的端口号
server_name 127.0.0.1; # 监听的 IP 地址
location ~ /image/ { # 这里存放静态文件
root test/test2; # 以Nginx文件夹为根目录,设置二次目录路径
autoindex on; # 显示当前文件夹内容
}
location ~ /www/ { # 这里存放动态文件
root test/test2; # 以Nginx文件夹为根目录,设置二次目录路径
}
}
六、Nginx集群
学了再写