一、环境服务器版本:CentOS7.2为了保证大家在学习阶段不遇到奇怪的事情,请保证以下四点(选择性忽略)确认系统网络确认yum可用确认iptables已关闭确认停用selinux#查看iptables状态systemctlstatusfirewalld.service#关闭防火墙(暂时关闭)systemctlstopfirewalld.service#查看SELinuxstatusgetenforce#暂时关闭SELinuxsetenforce0安装一些基本的系统工具,一般情况下系统会自带(不用Installing)yum-yinstallgccgcc-c++autoconfpcrepcre-develmakeautomakeyum-yinstallwgethttpd-toolsvim二、什么是Nginx?Nginx是一个开源、高性能、可靠的HTTP中间件、代理服务其他HTTP服务:HTTPD-ApacheFoundationIIS-MicrosoftGWS-Google(不对外开放)近年来Nginx的市场占有率越来越高,一度飙升,为什么?我们很快就会知道的!3、我们为什么选择Nginx?1、如何理解IO多路复用epoll(IO多路复用)?举个例子!有A、B、C三位老师,他们都遇到了一个问题,想帮班里的同学解决作业。A老师从第一排开始,一次回答一个学生的问题。A老师浪费了很多时间,有的学生在老师来之前作业还没做完,效率极低。B老师是忍者。他发现A老师的方法行不通,就用影子分身术造了几个自己,帮助几个同学同时答题。还没等他回答完,B老师就用尽了体力崩溃了。C老师比较精明。他告诉同学们,谁完成了作业就举手,他就对举手的同学进行指导。他让学生说出来,把“并发”分开。这个C老师就是Nginx。2.更少的轻量级功能模块——Nginx只保留HTTP需要的模块,其余使用插件,加入代码模块化——更适合二次开发,如AlibabaTengine3。CPUaffinity结合了CPU核心和NginxWorker进程绑定,固定每个worker进程在一个CPU上执行,减少切换CPU时的cachemiss,从而提高性能。三、安装及目录我用的是鸟哥的lnmp集成包https://lnmp.org,简单方便~推荐!#执行这句话,根据指引,会安装nginxphpmysql。可以进入lnmp官网查看更详细的过程#默认安装目录/usr/localwget-chttp://soft.vpser.net/lnmp/lnmp1.4.tar.gz&&tarzxflnmp1.4.tar.gz&&cdlnmp1.4&&./install.shlnmp#默认安装目录/usr/local4.基本配置#打开主配置文件,如果使用lnmp环境安装vim/usr/local/nginx/conf/nginx。conf--------------------------------------user#设置nginx服务使用的系统userworker_processes#工作进程数一般与CPU核数一致error_log#nginx错误日志pid#nginx启动时的pidevents{worker_connections#每个进程允许的最大连接数use#nginx使用的内核模型}我们使用httpnginx的服务,在配置文件nginx.conf中的http区域配置无数台服务器,每台服务器对应这个虚拟主机或域名http{......#后面详细介绍http配置itemsserver{listen80#listeningport;server_namelocalhost#addresslocation/{#访问主页路径root/xxx/xxx/index.html#defaultdestination记录索引index.htmlindex.htm#默认文件}error_page500504/50x.html#出现以上状态码时,重新定义为50x.htmllocation=/50x.html{#访问50x.html时,root/xxx/xxx/html#50x.html页面位置}}server{......}}一个服务器可以有多个位置,我们针对不同的情况配置不同的访问路径我们来看看http的配置细节http{sendfileon#高效文件传输模式必须开启keepalive_timeout65#客户端服务器请求超时log_formatmainXXX#定义日志格式代码为mainaccess_log/usr/local/access.logmain#日志保存地址格式代码main}4.模块检查模块nginx已经打开并编译成。模块太多,就不展开这么长的讨论了。需要的话自己百度吧~#大写V查看所有模块,小写v查看版本nginx-V#查看这个配置文件是否有语法错误nginx-tc/usr/local/nginx/conf/nginx.conf
