Wednesday, 12 August, 2026г.
russian english deutsch french spanish portuguese czech greek georgian chinese japanese korean indonesian turkish thai uzbek

пример: покупка автомобиля в Запорожье

 

超详细的Nginx简易教程,一学就会!

超详细的Nginx简易教程,一学就会!У вашего броузера проблема в совместимости с HTML5
请观看我的频道更新消息。 订阅我: https://www.youtube.com/channel/UCnwe0Em-C8vlimoWGIyZs6Q?sub_confirmation=1 ?sub_confirmation=1 谢谢!什么是Nginx?Nginx(enginex)是一款轻量级的Web服务器、反向代理服务器及电子邮件(IMAP/POP3)代理服务器。本文的作者为「静默虚空」,可点击文章底部的阅读原文关注作者博客。什么是反向代理?反向代理(ReveeProxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。安装与使用安装nginx官网下载地址:http:nginx.org,发布版本分为Linux和windows版本。也可以下载源码,编译后运行。从源代码编译Nginx把源码解压缩之后,在终端里运行如下命令:$./configure$make$sudomakeitall默认情况下,Nginx会被安装在/uslocal/nginx。通过设定编译选项,你可以改变这个设定。Windows安装为了安装Nginx/Win32,需先下载它。然后解压之,然后运行即可。下面以C盘根目录为例说明下:cdC:cdC:ginx-0.8.54startnginxNginx/Win32是运行在一个控制台程序,而非windows服务方式的。服务器方式目前还是开发尝试中。使用nginx的使用比较简单,就是几条命令。常用到的命令如下:nginx-sstop:快速关闭Nginx,可能不保存相关信息,并迅速终止web服务。nginx-squit:平稳关闭Nginx,保存相关信息,有安排的结束web服务。nginx-sreload:因改变了Nginx相关配置,需要重新加载配置而重载。nginx-sreopen:重新打开日志文件。nginx-cfilename:为Nginx指定一个配置文件,来代替缺省的。nginx-t:不运行,而仅仅测试配置文件。nginx将检查配置文件的语法的正确性,并尝试打开配置文件中所引用到的文件。nginx-v:显示nginx的版本。nginx-V:显示nginx的版本,编译器版本和配置参数。如果不想每次都敲命令,可以在nginx安装目录下新添一个启动批处理文件startup.bat,双击即可运行。内容如下:@echooffrem如果启动前已经启动nginx并记录下pid文件,会kill指定进程nginx.exe-sstoprem测试配置文件语法正确性nginx.exe-t-cconf/nginx.confrem显示版本信息nginx.exe-vrem按照指定配置去启动nginxnginx.exe-cconf/nginx.conf如果是运行在Linux下,写一个shell脚本,大同小异。nginx配置实战我始终认为,各种开发工具的配置还是结合实战来讲述,会让人更易理解。http反向代理配置我们先实现一个小目标:不考虑复杂的配置,仅仅是完成一个http反向代理。nginx.conf配置文件如下:注:conf/nginx.conf是nginx的默认配置文件。你也可以使用nginx-c指定你的配置文件#运行用户#usersomebody;#启动进程,通常设置成和cpu的数量相等worker_processes1;#全局错误日志error_logD:/Tools/nginx-1.10.1/logs/error.log;error_logD:/Tools/nginx-1.10.1/logs/notice.lognotice;error_logD:/Tools/nginx-1.10.1/logs/info.loginfo;#PID文件,记录当前启动的nginx的进程IDpidD:/Tools/nginx-1.10.1/logs/nginx.pid;#工作模式及连接数上限events{worker_connectio1024;#单个后台workerprocess进程的最大并发链接数}#设定http服务器,利用它的反向代理功能提供负载均衡支持http{#设定mime类型(邮件支持类型),类型由mime.types文件定义includeD:/Tools/nginx-1.10.1/conf/mime.types;default_typeapplicatiooctet-stream;#设定日志log_formatmain'[$remote_addr]-[$remote_user][$time_local]"$request"''$status$body_bytes_sent"$http_referer"''"$http_user_agent""$http_x_forwarded_for"';access_logD:/Tools/nginx-1.10.1/logs/access.logmain;rewrite_logon;#sendfile指令指定nginx是否调用sendfile函数(zerocopy方式)来输出文件,对于普通应用,#必须设为on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的uptime.sendfileon;#tcp_nopushon;#连接超时时间keepalive_timeout120;tcp_nodelayon;#gzip压缩开关#gzipon;#设定实际的服务器列表upstreamzp_server1{server127.0.0.1:8089;}#HTTP服务器server{#监听80端口,80端口是知名端口号,用于HTTP协议listen80;#定义使用www.xx.com访问server_namewww.helloworld.com;#首页indexindex.html#指向webapp的目录rootD:_WorkspaceProjectgithubzpSpringNotesspring-securityspring-shirosrcmainwebapp;#编码格式chaetutf-8;#代理配置参数proxy_connect_timeout180;proxy_send_timeout180;proxy_read_timeout180;proxy_set_headerHost$host;proxy_set_headerX-Forwarder-For$remote_addr;#反向代理的路径(和upstream绑定),location后面设置映射的路径location/{proxy_passhttp:zp_server1;}#静态文件,nginx自己处理location~^/(images|javascript|js|css|flash|media|static)/{rootD:_WorkspaceProjectgithubzpSpringNotesspring-securityspring-shirosrcmainwebappiews;#过期30天,静态文件不怎么更新,过期可以设大一点,如果频繁更新,则可以设置得小一点。expires30d;}#设定查看Nginx状态的地址location/NginxStatus{stub_statuson;access_logon;auth_basic"NginxStatus";auth_basic_user_fileconf/htpasswd;}#禁止访问.htxxx文件location~/.ht{denyall;}#错误处理页面(可选择性配置)#error_page404/404.html;#error_page500502503504/50x.html;#location=/50x.html{#roothtml;#}}}好了,让我们来试试吧:启动webapp,注意启动绑定的端口要和nginx中的upstream设置的端口保持一致。更改host:在C:WindowsSystem32driveetc目录下的host文件中添加一条D记录127.0.0.1www.helloworld.com启动前文中startup.bat的命令在浏览器中访问www.helloworld.com,不出意外,已经可以访问了。负载均衡配置上一个例子中,代理仅仅指向一个服务器。但是,网站在实际运营过程中,多半都是有多台服务器运行着同样的app,这时需要使用负载均衡来分流。nginx也可以实现简单的负载均衡功能。假设这样一个应用场景:将应用部署在192.168.1.11:80、192.168.1.12:80、192.168.1.13:80三台linux环境的服务器上。网站域名叫www.helloworld.com,公网IP为192.168.1.11。在公网IP所在的服务器上部署nginx,对所有请求做负载均衡处理。nginx.conf配置如下:http{#设定mime类型,类型由mime.type文件定义include/etc/nginx/mime.types;default_typeapplicatiooctet-stream;#设定日志格式access_log/valog/nginx/access.log;#设定负载均衡的服务器列表upstreamload_balance_server{#weigth参数表示权值,权值越高被分配到的几率越大server192.168.1.11:80weight=5;server192.168.1.12:80weight=1;server192.168.1.13:80weight=6;}#HTTP服务器server{#侦听80端口listen80;#定义使用www.xx.com访问server_namewww.helloworld.com;#对所有请求进行负载均衡请求location/{root/root;#定义服务器的默认网站根目录位置indexindex.htmlindex.htm;#定义首页索引文件的名称proxy_passhttp:load_balance_server;#请求转向load_balance_server定义的服务器列表#以下是一些反向代理的配置(可选择性配置)#proxy_redirectoff;proxy_set_headerHost$host;proxy_set_headerX-Real-IP$remote_addr;#后端的Web服务器可以通过X-Forwarded-For获取用户真实IPproxy_set_headerX-Forwarded-For$remote_addr;proxy_connect_timeout90;#nginx跟后端服务器连接超时时间(代理连接超时)proxy_send_timeout90;#后端服务器数据回传时间(代理发送超时)proxy_read_timeout90;#连接成功后,后端服务器响应时间(代理接收超时)proxy_buffer_size4k;#设置代理服务器(nginx)保存用户头信息的缓冲区大小proxy_buffe432k;#proxy_buffe缓冲区,网页平均在32k以下的话,这样设置proxy_busy_buffe_size64k;#高负荷下缓冲大小(proxy_buffe*2)proxy_temp_file_write_size64k;#设定缓存文件夹大小,大于这个值,将从upstream服务器传client_max_body_size10m;#允许客户端请求的最大单文件字节数client_body_buffer_size128k;#缓冲区代理缓冲用户端请求的
Мой аккаунт