作者:海岛
起源:https://segmentfault.com/a/11…
一、环境
服务器版本:CentOS 7.2
为了保障 学习阶段 不遇到奇怪的事件,请保障以下四点(大神选择性忽视)
- 确认零碎网络
- 确认 yum 可用
- 确认敞开 iptables
- 确认停用 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 automake
yum -y install wget httpd-tools vim
二、Nginx 是什么?
Nginx 是一个开源且高性能、牢靠的 HTTP 中间件、代理服务
其余的 HTTP 服务:
- HTTPD-Apache 基金会
- IIS- 微软
- 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/local
wget -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 启动时的 pid
events {
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 开发手册(嵩山版)》最新公布,速速下载!
感觉不错,别忘了顺手点赞 + 转发哦!