个人技术分享

目录

一、简介

1、什么是Nginx

2、Nginx的优点

二、四大应用场景

1、HTTP服务器

2、反向代理

3、负载均衡

4、动静分离

三、Nginx 源码安装

 1、安装相关依赖

2、启动nginx

3、安装成系统服务


一、简介

1、什么是Nginx

        Nginx是一款轻量级的Web服务器,反向代理服务器,特点是占用内存少,并发能力强,启动速度快等特点。

        Nginx专为性能优化而开发,使用异步非阻塞事件驱动模型。

2、Nginx的优点

        1、它可以高并发连接,官方测试能支撑5万并发连接,在实际生产环境中可以支撑2-4万并发连接

        2、内存消耗少

        3、开源

        4、稳定性高

        5、支持热部署

二、四大应用场景

1、HTTP服务器

        Nginx本身也是一个静态资源的服务器,当只有静态资源的时候,就可以使用Nginx来做为服务器,如果一个网站只是静态页面的话,那么就可以通过这种方式来实现部署。

2、反向代理

        **反向代理:**其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器IP地址。

3、负载均衡

        负载均衡也是Nginx常用的一个功能,负载均衡就是一个Wrb服务器解决不了的问题可以通过多个Web服务器来平均分担压力来解决。并发过来的请求平均分配到多个后台Web服务器来处理。这样压力就没分解了。

4、动静分离

        这个是让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源分开,动静资源做好拆分以后,我们就可以根据静态资源的特点将其做缓存操作,这就是网站静态化处理的核心思路。

三、Nginx 源码安装

去官网下载安装包

Nginx官网

或者使用Linux 联网,直接在Linux服务器上使用wget命令把Nginx按转包下载到/usr/local目录下

[root@localhost ~]# wget -c http://nginx.org/download/nginx-1.24.0.tar.gz

 1、安装相关依赖

检查依赖是否安装
[root@localhost ~]# rpm -q gcc
gcc-4.8.5-44.el7.x86_64

yum install -y gcc-c++    zlib zlib-devel    openssl openssl-devel pcre pcre-devel

解压:
[root@localhost ~]# tar -zxvf nginx-1.24.0.tar.gz

#修改名子
[root@localhost home]# mv nginx-1.24.0 nginx

#编译安装,安装到/usr/local/nginx 如果报错,可能是缺少相应的依赖包
[root@localhost nginx]# ./configure --prefix=/usr/local/nginx

## --prefix= 是你的安装路径,想安装在哪里就写你自己的目录路径

提示以下信息 ,就可以直接编译安装了。
Configuration summary
  + using system PCRE library
  + OpenSSL library is not used
  + using system zlib library

# 我们直接一条命令搞定
 make && make install
安装完之后就可以启动了。

2、启动nginx

进入安装好的目录 /usr/local/nginx/sbin

启动:
[root@localhost sbin]# ./nginx

快速停止:
[root@localhost sbin]# ./nginx -s stop

优雅关闭,在退出前完成已经接受的连接请i去
[root@localhost sbin]# ./nginx -s quit

重新加载配置
[root@localhost sbin]# ./nginx -s reload

验证是否启动成功
[root@localhost sbin]# ps -ef |grep nginx
root      11554      1  0 14:59 ?        00:00:00 nginx: master process ./nginx
nobody    11555  11554  0 14:59 ?        00:00:00 nginx: worker process
root      11569   1875  0 14:59 pts/0    00:00:00 grep --color=auto nginx

或者浏览器访问,如下图
http://192.168.153.128/
如果访问不进去,检查防火墙、
[root@localhost sbin]# systemctl status firewalld
禁止防火墙开机自启动
[root@localhost sbin]# systemctl disable firewalld
或者放行 nginx 的80端口,并重启防火墙
[root@localhost sbin]# firewall-cmd --zone=public --add-port=80/tcp --permanent

3、安装成系统服务

1、创建服务脚本
vim /usr/lib/systemd/system/nginx.service

[Unit]
Description=nginx - web server
After=network.target remote-fs.target nss-lookup.target


[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
ExecQuit=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target

重新加载系统服务
[root@localhost system]# systemctl daemon-reload

再次检查进程,并停掉nginx
[root@localhost sbin]# ps -ef |grep nginx
[root@localhost sbin]# ./nginx -s stop
用systemctl启动nginx
[root@localhost sbin]# systemctl start nginx.service 
[root@localhost sbin]# systemctl status nginx.service 
设置开机自启动
[root@localhost sbin]# systemctl enable nginx.service