建设移动端网站,专业网页制作的帮手,兰州旅游攻略,模板速成网站1. Nginx介绍
2.Nginx常用命令
cd /usr/local/nginx/sbin/
./nginx 启动
./nginx -s stop 停止
./nginx -s quit 安全退出
./nginx -s reload 重新加载配置文件 如果我们修改了配置文件#xff0c;就需要重新加载。
ps aux|grep nginx 查看nginx进程3.nginx配置文件
…1. Nginx介绍
2.Nginx常用命令
cd /usr/local/nginx/sbin/
./nginx 启动
./nginx -s stop 停止
./nginx -s quit 安全退出
./nginx -s reload 重新加载配置文件 如果我们修改了配置文件就需要重新加载。
ps aux|grep nginx 查看nginx进程3.nginx配置文件
3.1 基础配置
# 主进程叫master负责管理子进程子进程叫worker
# worker_processes配置项表示开启几个业务进程一般和cpu核数有关
worker_processes 1;events {worker_connections 1024;
}http {# include表示可以引入其他文件此处表示引入http mime类型include mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;# 虚拟主机可以配置多个server {listen 80;server_name localhost;location / {# 路径匹配之后哪个目录下去匹配相应的网页,html是相对路径root html;index index.html index.htm;}error_page 500 502 503 504 /50x.html;location /50x.html {root html;}}3.1.1 第一部分全局块 主要会设置一些影响Nginx服务器整体运行的配置指令主要包括配置运行Nginx服务器的用户组、允许生成的 worker process 数进程PID存放路径、日志存放路径和类型以及配置文件的引入等。 worker_processes 1; 上面这行 worker_processes 配置是 Nginx 服务器并发处理服务的关键配置该值越大可以支持的并发处理量也越多但是会受到硬件、软件等设备的约束。 3.1.2 第二部分events块 events 块涉及的指令主要影响Nginx服务器与用户的网络连接常用的设置包括是否开启对多 work process下的网络连接进行序列化是否允许同时接收多个网络连接选取哪种事件驱动模型来处理连接请求每个 work process 可以同时支持的最大连接数等 worker_connections 1024; 上述例子就表示每个 work process 支持的最大连接数为 1024。这部分的配置对Nginx的性能影响较大在实际中应该灵活配置。 3.1.3 第三部分http全局块主要配置的模块 这部分是 Nginx 服务器配置中最频繁的部分代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里。需要注意的是http 块也可以包括 http 全局块、server 块。下面的反向代理、动静分离、负载均衡都是在这部分中配置 http 全局块http 全局块配置的指令包括文件引入、MIME-TYPE 定义、日志自定义、连接超时时间、单链接请求数上限等。
server 块这块和虚拟主机有密切关系从用户角度看虚拟主机和一台独立的硬件主机是完全一样的该技术的产生是为了节省互联网服务器硬件成本。
每个http块可以包括多个server块而每个server块就相当于一个虚拟主机。而每个server块也分为全局server块以及可以同时包含多个locaton块。
3.1.3.1 全局 server 块 最常见的配置是本虚拟机主机的监听配置和本虚拟主机的名称或IP配置。 3.1.3.2 location 块 一个 server 块可以配置多个 location 块。 基于 Nginx 服务器接收到的请求字符串例如 server_name/uri-string对虚拟主机名称也可以是 IP 别名之外的字符串例如 前面的 /uri-string进行匹配对特定的请求进行处理。地址定向、数据缓存和应答控制等功能还有许多第三方模块的配置也在这里进行。 4. 实操
4.1反向代理
4.1.1 跳转
实现效果使用 Nginx 反向代理访问192.168.68.130直接跳转到127.0.0.1:8080和127.0.0.1:7070
server {listen 80;server_name 192.168.68.130;location / {root html;index index.html index.htm;proxy_pass http://127.0.0.1:8080}location ~ /edu/ {proxy_pass http://127.0.0.1:7070}
}监听192.168.68.130:80匹配所有到http://127.0.0.1:8080 监听192.168.68.130:80/edu匹配所有到http://127.0.0.1:7070 location 指令说明 该指令用于匹配 URL 语法如下
location [ | ~ | ~* | ^~] uri {}用于不含正则表达式的 uri 前要求请求字符串与 uri 严格匹配如果匹配成功就停止继续向下搜索并立即处理该请求 ~用于表示 uri 包含正则表达式并且区分大小写 ~*用于表示 uri 包含正则表达式并且不区分大小写 ^~用于不含正则表达式的 uri 前要求 Nginx 服务器找到标识 uri 和请求。字符串匹配度最高的 location 后立即使用此 location 处理请求而不再使用 location块中的正则 uri 和请求字符串做匹配。
4.2负载均衡
4.2.1 轮询 # 反向代理配置upstream server_list{# 这个是tomcat的访问路径server localhost:8080;server localhost:7070;}server {listen 80;server_name localhost;location / {root html;proxy_pass http://server_list;index index.html index.htm;}error_page 500 502 503 504 /50x.html;location /50x.html {root html;}}监听localhost:80分发到server localhost:8080和server localhost:7070;默认使用轮询策略 4.2.1 weight 权重 weight 代表权重默认为1,权重越高被分配的客户端越多 指定轮询几率weight和访问比率成正比用于后端服务器性能不均的情况。 # 反向代理配置
upstream server_list{# 这个是tomcat的访问路径server localhost:8080 weight5;server localhost:7070 weight1;
}4.2.2 ip_hash 每个请求按访问ip的hash值分配这样每个访问客户端会固定访问一个后端服务器可以解决会话Session丢失的问题.不管刷新多少遍始终访问的是同一台tomcat服务器 upstream backserver { ip_hash; server 127.0.0.1:8080; server 127.0.0.1:7070;
}4.2.3 最少连接 web请求会被转发到连接数最少的服务器上 upstream backserver { least_conn;server 127.0.0.1:8080; server 127.0.0.1:7070;
} 5. 容易搞混的配置
5.1 root和alias 使用root实际的路径就是root值 location值。 使用alias实际的路径就是alias值。 例如 有一张图片URL是www.123.com/static/a.jpg 它在服务器的路径是/var/www/app/static/a.jpg 那么用root的配置是
location /static/ {root /var/www/app/;
}用alias的配置就是
location /static/ {alias /var/www/app/static/;
}对于aliaslocation值可以随便取例如
location /hello/ {alias /var/www/app/static/;
}这样我们访问图片的地址就是www.123.com/hello/a.jpg
5.2 try_files
try_files /4.html /5.html qwe; #检测文件4.html和5.html,如果存在正常显示,不存在就去查找qwe值