作者:海岛

起源:https://segmentfault.com/a/11...

一、环境

服务器版本:CentOS 7.2

为了保障学习阶段不遇到奇怪的事件,请保障以下四点(大神选择性忽视)

  1. 确认零碎网络
  2. 确认yum可用
  3. 确认敞开iptables
  4. 确认停用selinux
#查看iptables状态systemctl status firewalld.service#敞开防火墙(长期敞开)systemctl stop firewalld.service#查看SELinux状态 getenforce#长期敞开SELinux setenforce 0

装置一些零碎根本工具,失常状况零碎都会自带(没有在装哦)

yum -y install gcc gcc-c++ autoconf pcre pcre-devel make automakeyum -y install wget httpd-tools vim

二、Nginx是什么?

Nginx是一个开源且高性能、牢靠的HTTP中间件、代理服务
其余的HTTP服务:

  1. HTTPD-Apache基金会
  2. IIS-微软
  3. GWS-Google(不对外开放)

近几年,Nginx的市场占有率越来越高,一度飙升,为什么呢?接下来咱们就晓得了!

三、咱们为什么抉择Nginx?

1. IO多路复用epoll(IO复用)

如何了解呢?举个例子吧!
有A、B、C三个老师,他们都遇到一个难题,要帮忙一个班级的学生解决课堂作业。
老师A采纳从第一排开始一个学生一个学生轮流解答的形式去答复问题,老师A节约了很多工夫,并且有的学生作业还没有实现呢,老师就来了,反反复复效率极慢。
老师B是一个忍者,他发现老师A的办法行不通,于是他应用了影分身术,分身出好几个本人同一时间去帮好几个同学答复问题,最初还没答复完,老师B耗费光了能量累倒了。
老师C比拟精明,他通知学生,谁实现了作业举手,有举手的同学他才去领导问题,他让学生被动发声,离开了“并发”。
这个老师C就是Nginx。

2. 轻量级

  • 功能模块少 - Nginx仅保留了HTTP须要的模块,其余都用插件的形式,先天增加
  • 代码模块化 - 更适宜二次开发,如阿里巴巴Tengine

3. CPU亲和

把CPU外围和Nginx工作过程绑定,把每个worker过程固定在一个CPU上执行,缩小切换CPU的cache miss,从而进步性能。

三、装置与目录

自己应用了鸟哥的lnmp集成包,简略不便-举荐!

#执行这句语句,依据指引,将装置 nginx php mysql 可进入lnmp官网查看更具体的过程#默认装置目录/usr/localwget -c http://soft.vpser.net/lnmp/lnmp1.4.tar.gz && tar zxf lnmp1.4.tar.gz && cd lnmp1.4 && ./install.sh lnmp#默认装置目录/usr/local

四、根本配置

#关上主配置文件,若你是用lnmp环境装置vim /usr/local/nginx/conf/nginx.conf----------------------------------------user                    #设置nginx服务的零碎应用用户worker_processes        #工作过程数 个别状况与CPU核数保持一致error_log               #nginx的谬误日志pid                     #nginx启动时的pidevents {    worker_connections    #每个过程容许最大连接数    use                   #nginx应用的内核模型}

咱们应用 nginx 的 http 服务,在配置文件 nginx.conf 中的 http 区域,配置无数个 server ,每一个 server 对应这一个虚拟主机或者域名

http {    ... ...        #前面再具体介绍 http 配置我的项目        server {        listen 80                          #监听端口;        server_name localhost              #地址                location / {                       #拜访首页门路            root /xxx/xxx/index.html       #默认目录            index index.html index.htm     #默认文件         }                        error_page  500 504   /50x.html    #当呈现以上状态码时从新定义到50x.html                location = /50x.html {             #当拜访50x.html时            root /xxx/xxx/html             #50x.html 页面所在位置        }            }        server {        ... ...     } }

一个 server 能够呈现多个 location ,咱们对不同的拜访门路进行不同状况的配置
咱们再来看看 http 的配置详情

http {    sendfile  on                  #高效传输文件的模式 肯定要开启    keepalive_timeout   65        #客户端服务端申请超时工夫    log_format  main   XXX        #定义日志格局 代号为main    access_log  /usr/local/access.log  main     #日志保留地址 格局代码 main}

四、模块

查看 nginx 已开启和编联进去的模块,模块太多了,就不在这简明扼要,有须要自行百度吧~

#大写V查看所有模块,小写v查看版本nginx -V# 查看此配置文件 是否存在语法错误nginx -tc /usr/local/nginx/conf/nginx.conf

近期热文举荐:

1.1,000+ 道 Java面试题及答案整顿(2021最新版)

2.别在再满屏的 if/ else 了,试试策略模式,真香!!

3.卧槽!Java 中的 xx ≠ null 是什么新语法?

4.Spring Boot 2.5 重磅公布,光明模式太炸了!

5.《Java开发手册(嵩山版)》最新公布,速速下载!

感觉不错,别忘了顺手点赞+转发哦!