主页»服务器»Nginx入门到实战(1)根底篇

Nginx入门到实战(1)根底篇

来历:海岛 发布时刻:2019-07-02 阅览次数:

一、环境

服务器版别: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 automake
yum -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集成包 https://lnmp.org,简略便利-引荐!

#履行这句句子,依据指引,将装置 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
QQ群:凯发娱乐官网官方群(515171538),验证音讯:10000
微信群:加小编微信 849023636 邀请您参加,验证音讯:10000
提示:更多精彩内容重视微信大众号:全栈开发者中心(fsder-com)
网友谈论(共0条谈论) 正在载入谈论......
沉着谈论文明上网,回绝歹意咒骂 宣布谈论 / 共0条谈论
登录会员中心