标签:分块 windows download wsgi sources oev net 端口 图片
nginx [engine x]是一个HTTP和反向代理服务器,一个邮件代理服务器和一个通用的TCP / UDP代理服务器,最初由Igor Sysoev编写。很长一段时间以来,它一直在许多负载很重的俄罗斯网站上运行,包括 Yandex, Mail.Ru, VK和 Rambler。据Netcraft称,nginx 在2019年6月服务或代理了 26.34%最繁忙的网站.
基本的HTTP服务器功能、其他HTTP服务器功能、邮件代理服务器功能
我这里下载的是Windows版本.
解压打开如下:
在Nginx目录的搜索栏,敲入cmd
输入命令start nginx即可启动Nginx
在浏览器访问 localhost:
其他的一些常用命令:
nginx -s stop 快速关闭
nginx -s quit 优雅关闭
nginx -s reload 重新加载配置文件
nginx -s reopen 重新打开日志文件
nginx的配置文件在/conf/nginx.conf,nginx由模块组成,这些模块由配置文件中指定的指令控制。指令分为简单指令和块指令
一个简单的指令由名称和参数组成,用空格分隔,以分号(;)结尾。
块指令与简单指令具有相同的结构,但它不是以分号结尾,而是以大括号{}包围的一组附加指令结束。如果块指令在大括号内可以有其他指令,则称为上下文(示例: events, http, server和 location)。
"#" 表示注解
在/conf/ 目录下,将原来的nginx.conf文件改名为nginx.conf1,并且创建一个空白的nginx.conf文件
修改nginx.conf文件
##工作线程, 建议和cpu数量相同
worker_processes 4;
#工作模式与连接数上限
events {
#单个进程最大连接数(最大连接数=连接数*进程数)
worker_connections 1024;
}
#设定http服务器
http {
#虚拟主机的配置
server {
#对 "/" 启用反向代理
location / {
# 制定静态资源的位置
root D://web_resources//static//;
}
location /images/ {
root D://web_resources//static//;
}
}
}
本地图片的路径 : D:\web_resources\static\images\1.png
本地页面的路径: D:\web_resources\static\index.html
也就是所 root的路径+ location后面的路径 = 实际文件存放的文件夹路径
访问测试:
成功了有没有.
nginx的一个常见用途是将其设置为代理服务器,这意味着服务器接收请求,将它们传递给代理服务器,从中检索响应,然后将它们发送给客户端。
接下来做一个简单的动静分离的例子, 静态资源访问指向本地目录,动态资源代理本地的一个8080端口的web服务.
修改nginx.conf文件
http {
server {
location / {
# 代理的地址
proxy_pass http://localhost:8080;
}
# 该参数是一个正则表达式匹配以gif,.jpg或.png结尾的URL
#相应的请求将映射到该D://web_resources//static//; 目录。
location ~ \.(gif|jpg|png|html)$ {
root D://web_resources//static//;
}
}
}
访问8080端口的服务:
确实被转发过去了.
访问静态资源:
除了动静分离,Nginx的负载均衡也是常用的一个功能.
nginx支持以下负载平衡机制(或??方法):
如果未特别配置负载平衡方法,则默认为循环。
修改nginx.conf文件
http {
#负载均衡
upstream myapp1 {
server localhost:8080;
server localhost:8081;
server localhost:8082;
}
server {
# nginx监听的端口
listen 80;
location / {
proxy_pass http://myapp1;
}
}
}
多次请求页面,请求均匀的负载在每个服务上:
输出语句的数量相同.
另一个负载平衡规则是最少连接的。在某些请求需要更长时间才能完成的情况下,最小连接允许更公平地控制应用程序实例上的负载。
使用最少连接的负载平衡,nginx将尝试不会使繁忙的应用程序服务器超载请求过多,而是将新请求分发给不太繁忙的服务器。
当 least_conn指令用作服务器组配置的一部分时,将激活nginx中的最小连接负载平衡
#负载均衡
upstream myapp1 {
# 最少连接负载均衡指令
least_conn;
server localhost:8080;
server localhost:8081;
server localhost:8082;
}
请注意,通过循环或最少连接的负载平衡,每个后续客户端的请求可能会分发到不同的服务器。无法保证同一客户端始终指向同一服务器。
如果需要将客户端绑定到特定的应用程序服务器 - 换句话说,就始终尝试选择特定服务器而言,使客户端的会话“粘滞”或“持久” - ip-hash负载平衡机制可以是用过的。
使用ip-hash,客户端的IP地址将用作散列密钥,以确定应为客户端的请求选择服务器组中的哪个服务器。此方法可确保来自同一客户端的请求始终定向到同一服务器,但此服务器不可用时除外。
配置方式和上面类似, 添加指令ip_hash:
#负载均衡
upstream myapp1 {
# 最少连接负载均衡指令
ip_hash;
server localhost:8080;
server localhost:8081;
server localhost:8082;
}
在上面的示例中,未配置服务器权重,这意味着所有指定的服务器都被视为对特定负载平衡方法具有同等资格。
当 为服务器指定权重参数时, 权重被计入负载平衡决策的一部分。
修改配置文件:
upstream myapp1 {
#upstream的负载均衡,weight是权重,可以根据机器配置定义权重。weigth参数表示权值,权值越高被分配到的几率越大。
server localhost:8080 weight = 3;
server localhost:8081;
server localhost:8082;
}
使用此配置,每5个新请求将分布在应用程序实例中,如下所示:3个请求将定向到8080端口,一个请求将转到8081端口,另一个请求转到8082端口。
两个参数max_fails和fail_timeout,用于判断后端节点状态.
在fail_timeout的时间范围内连接服务器通信失败的次数如果超过max_fail,那么服务器被判定为不可用.并且再次等待一个fail_timeout的时间,再去重新尝试请求.
fail_timeout的默认值为30s,,max_fails的默认值为1.
配置方式:
#负载均衡
upstream myapp1 {
server localhost:8080 weight=3 max_fails=10 fail_timeout=30;
server localhost:8081;
server localhost:8082;
}
标签:分块 windows download wsgi sources oev net 端口 图片
原文地址:https://www.cnblogs.com/xisuo/p/11125670.html