自己做网站广告,企业网站搜索优化外包,烈焰传奇网页版,广州安全教育平台视频一、什么是Nginx
Nginx 是开源的轻量级 Web 服务器、反向代理服务器#xff0c;以及负载均衡器和 HTTP 缓存器。其特点是高并发#xff0c;高性能和低内存。 Nginx 专为性能优化而开发#xff0c;性能是其最重要的考量#xff0c;实现上非常注重效率#xff0c;能经受高负…一、什么是Nginx
Nginx 是开源的轻量级 Web 服务器、反向代理服务器以及负载均衡器和 HTTP 缓存器。其特点是高并发高性能和低内存。 Nginx 专为性能优化而开发性能是其最重要的考量实现上非常注重效率能经受高负载的考验最大能支持 50000 个并发连接数。 Nginx 还支持热部署它的使用特别容易几乎可以做到 7x24 小时不间断运行。
二、Nginx 的常用功能
1、正向代理及反向代理
其主要有以下几点区别
代理对象不同。正向代理代理的是客户端反向代理代理的是服务器。正向代理帮助客户访问其无法访问的服务器资源反向代理帮助服务器做负载均衡另外由于客户端跟真实服务器不直接接触能起到一定安全防护的作用。架设主体不同。正向代理一般是客户端架设的比如在自己的机器上装一个代理软件反向代理一般是服务器架设的通常是在机器集群中部署个反向代理服务器。保护对象不同。正向代理保护对象是客户端反向代理保护对象是原始资源服务器。作用目的不同。正向代理主要目的是解决访问限制问题而反向代理一方面是作为负载均衡再就是起到安全防护的作用。
2、负载均衡
Nginx提供的负载均衡策略有2种内置策略和扩展策略。 内置策略为轮询加权轮询Ip hash。 扩展策略就天马行空只有你想不到的没有他做不到的啦。 我们日常中最常见的三种nginx的负载均衡策略应当为轮询、权重、ip绑定。
3、web缓存
Nginx可以对不同的文件做不同的缓存处理配置灵活并且支持FastCGI_Cache主要用于对FastCGI的动态程序进行缓存。配合着第三方的ngx_cache_purge对制定的URL缓存内容可以的进行增删管理。
三、Nginx配置文件结构
安装nginx的时候默认配置文件位置为/etc/nginx 下默认的配置文件为nginx.conf nginx配置文件在/etc/nginx/nginx.conf
nginx.conf
Nginx服务器的基础配置默认的配置也存放在nginx.conf中它的配置文件都是以block的形式组织的每个block一般都是以括号“{}”来表示的。主要包括全局,event,http,server等设置event主要定义nginx的工作模式http提供web功能server用来设置虚拟主机server可以存在多个。主要包含以下几个部分
1、 全局块
主要设置一些影响 nginx 服务器整体运行的配置指令。包括运行 nginx 的用户组进程存放日志配置文件等。
比如 worker_processes 1; worker_processes 值越大可以支持的并发处理量就越多。
2、events块
events 块涉及的指令主要影响Nginx服务器与用户的网络连接。包括进程最大连接数数据驱动模型序列化等。
比如 worker_connections 1024; 支持的最大连接数。
3、http块
http 块又包括 http 全局块和 server 块是服务器配置中最频繁的部分包括配置代理缓存日志第三方模块等可嵌套多个 server。
server块配置虚拟主机的相关参数。
location块URL匹配特定位置的设置配置请求路由以及各种页面的处理情况。
upstream负载均衡服务器设置指令主要用于负载均衡设置一系列的后端服务器,upstream后的名称和后面的 proxy_pass要对应起来。
四、配置示例
#全局配置 #指定nginx运行的用户及用户组,默认为nobody。
#user administrator administrators; #允许生成的进程数默认为1
#worker_processes 2; #指定nginx进程运行文件存放地址
#pid /nginx/pid/nginx.pid; #定位全局错误日志文件级别。这个设置可以放入全局块http块server块。
#级别以此为debug|info|notice|warn|error|crit|alert|emerg。
#debug输出最多crir输出最少根据实际环境而定
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;#events 配置
events {#设置网路连接序列化防止惊群现象发生默认为onaccept_mutex on; #设置一个进程是否同时接受多个网络连接默认为offmulti_accept on; #事件驱动模型select|poll|kqueue|epoll|resig|/dev/poll|eventport#use epoll; #最大连接数默认为512worker_connections 1024;
}#http 配置
http {#文件扩展名与文件类型映射表include mime.types; #默认文件类型默认为text/plaindefault_type application/octet-stream;#自定义格式main为日志格式的名称可自行设置后面引用#log_format main $remote_addr - $remote_user [$time_local] $request # $status $body_bytes_sent $http_referer # $http_user_agent $http_x_forwarded_for;#引用日志main格式 #access_log logs/access.log main; #允许sendfile方式传输文件默认为off可以在http块server块location块。sendfile on; #连接超时时间默认为75s0; 无限时间可以在httpserverlocation块。keepalive_timeout 65; #开启gzip压缩gzip on;#负载均衡服务器设置upstream mysvr { server 127.0.0.1:7878;server 192.168.10.121:3333 backup; #热备}#访问异常页面配置error_page 404 https://www.baidu.com; #配置虚拟主机的相关参数server {#单连接请求上限次数。keepalive_requests 120; #监听端口listen 4545; #监听地址可以是ip可以是域名server_name 127.0.0.1; #设置主机基本信息请求路由以及各种页面的处理情况 location / { #请求的url过滤正则匹配~为区分大小写~*为不区分大小写。#根目录root html; #设置默认页index index.html index.htm; #请求转向mysvr 定义的服务器列表#proxy_pass http://mysvr; }}}五、nginx http模块配置实例及日常使用命令
1、反向代理
server {listen 80; server_name 192.168.4.32; #监听地址location / { root html; #/html目录proxy_pass http://127.0.0.1:8080; #请求转向index index.html index.htm; #设置默认页 } }2、负载均衡
在浏览器地址栏输入 http://192.168.4.32:80平均到 5000 和 8080 端口中实现负载均衡效果。
upstream myserver { server 192.167.4.32:5000;server 192.168.4.32:8080;}server {listen 80; #监听端口server_name 192.168.4.32; #监听地址location / { root html; #html目录index index.html index.htm; #设置默认页proxy_pass http://myserver; #请求转向 myserver 定义的服务器列表 } }3、Log排错
在conf中有两个log地址 一个定义在全局块 一个定义在http的access.log中。
/var/log/nginx/error.log
/var/log/nginx/access.log4、不重启的情况下加载配置
测试是否写对了
nginx -t不重启服务的情况下加载新的内容
nginx -s reload