Nginx网络服务

124 阅读5分钟

Nginx服务基础

关于Nginx

一款高性能,轻量级的反向代理服务器,用于HTTP,HTTPS,SMTP,POP3,IMAP
   稳定性高
   系统资源消耗低
   对HTTP并发连接的处理能力高
       单台物理服务器可支持30000-50000个并发请求

Nginx优点

跨平台,配置简单
非阻塞,高并发连接,处理2-3万并发连接数,官方检测能支持五万并发(高性能,并发能力强,一般可以处理2-3万并发连接数)
内存消耗小:开启10个Nginx才占150M内存(轻量级,系统资源消耗比较少)
成本低廉,且开源
稳定性高,宕机几率非常小

Nginx和Apache的区别

轻量级,nginx比apcahe占内存更少
静态处理,Nginx静态处理比Apache高,nginx抗并发能力强,nginx处理是异步非阻塞,apache是阻塞性的
Nginx可以实现无缓存的反向代理加速,提高网站运行速度
Nginx的性能和可伸缩性不依赖于硬件
Nginx支持热部署,启用速度迅速,可在不间断服务的情况下,对软件进行升级
Nginx是异步进程,多个连接可以对应一个进程,apache是同步多进程,一个连接对应一个进程
Nginx高度模块化,编写模块较简单,组件比Apache少
高并发下Nginx能保持低资源低消耗高性能
Nginx配置简介,Apache配置复杂

Nginx的两个进程

  • master process 主进程 (管理进程的)
  • worker process 工作进程 (处理用户的连接请求)

编译安装nginx服务

1.关闭防火墙,将安装nginx所需软件包传到/opt目录下

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

vim /etc/sysconfig/selinux

image.png 2.安装依赖包

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

image.png

3.创建运行用户、组(Nginx 服务程序默认以 nobody 身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限) image.png 4.编译安装Nginx

image.png

image.png make && make install

image.png

新版本升级方法

tar -zxvf nginx-1.xx.xx.tar.gz 
cd nginx-1.xx.xx
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
--with-http_ssl_module

make
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_old
cp objs/nginx /usr/local/nginx/sbin/nginx
make upgrade

5.添加 Nginx 系统服务

方法一:

image.png

image.png

image.png 方法二:

vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
---------------------------------------------------------
[Unit]:服务的说明
Description:描述服务
After:依赖,当依赖的服务启动之后再启动自定义的服务

[Service]服务运行参数的设置
Type=forking是后台运行的形式,使用此启动类型应同时指定PIDFile=,以便systemd能够跟踪服务的主进程。
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:启动、重启、停止命令全部要求使用绝对路径

[Install]服务安装的相关设置,可设置为多用户
---------------------------------------------------------

chmod 754 /lib/systemd/system/nginx.service
systemctl start nginx.service
systemctl enable nginx.service

认识Nginx服务的主配置文件nginx.conf

1.全局块:全局配置,全局有效
2.events块:配置影响Nginx服务器与用户的网路连接
3.http块:配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置
4.server块:配置虚拟主机的相关参数,一个http块中可以有多个server5.location块:用于配置匹配的url
6.upsteram块:配置后服务器具体地址,负载均衡配置不可获取的部分

image.png

image.png

image.png

image.png image.png

#如提高每个进程的连接数还需执行“ulimit -n 65535”命令临时修改本地每个进程可以同时打开的最大文件数。
#在Linux平台上,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。
#可使用ulimit -a命令查看系统允许当前用户进程打开的文件数限制。
#epoll是Linux内核为处理大批句柄而作改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著的减少程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。

3.HTTP配置

访问状态统计配置

1.先使用命令/usr/local/nginx/sbin/nginx -V 查看已安装的 Nginx 是否包含 HTTP_STUB_STATUS 模块

image.png

2.修改 nginx.conf 配置文件,指定访问位置并添加 stub_status 配置

image.png image.png

image.png

3.重启服务,访问测试

image.png

image.png

基于授权的访问控制

1.生成用户密码认证文件

image.png

image.png 2.修改主配置文件相对应目录,添加认证配置项

image.png

image.png 3.重启服务,访问测试 systemctl restart nginx image.png

基于客户端的访问控制

image.png

image.png

基于域名的Nginx虚拟主机

1.为主机提供域名解析

image.png

2.为虚拟主机准备网页文档 image.png 3.修改Nginx的配置文件

image.png 4.重启服务,访问测试

image.png 5.浏览器访问

image.png

image.png

基于IP的Nginx虚拟主机

ifconfig ens33:0 192.168.100.11 netmask 255.255.255.0

image.png

image.png

image.png

image.png

基于端口的 Nginx 虚拟主机

image.png

image.png

image.png

image.png

安装LNMP

【安装配置 PHP 解析环境】

1、安装环境依赖包 image.png 2、编译安装 image.png

image.png

image.png 3、路径优化

image.png 4、调整PHP配置文件

调整主配置文件

cp /opt/php-7.2.30/php.ini-development /usr/local/php/lib/php.ini

vim /usr/local/php/lib/php.ini image.png image.png

调整进程服务配置文件

image.png

image.png 调整扩展配置文件

image.png 5、启动php-fpm

image.png

image.png 6、配置 Nginx 支持 PHP 解析

image.png

image.png 7、验证PHP 测试页

image.png

image.png 8、验证数据库工作是否正常

image.png

image.png

image.png

【部署 Discuz!社区论坛 Web 应用】

cd /opt
unzip Discuz_X3.4_SC_UTF8.zip  -d /opt/dis
cd /opt/dis/dir_SC_UTF8/
cp -r upload/ /usr/local/nginx/html/bbs/

调整论坛目录的权限

image.png

image.png

数据库服务器:localhost     ###本地架设就用localhost,如何不是在在本机上就要填写IP地址和端口号
数据库名字:bbs
数据库用户名:bbsuser
数据库密码:admin123
管理员账号:admin
管理员密码:admin123

image.png