乐趣区

关于java:Nginx-入门到实战新手必懂~

作者:海岛

起源: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 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 集成包,简略不便 - 举荐!

# 执行这句语句,依据指引,将装置 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 开发手册(嵩山版)》最新公布,速速下载!

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

退出移动版