Nginx网站服务

Nginx

  • 是一个开源的高性能的Web服务器软件
  • 是一个反向代理服务器
  • 可以用于负载均衡、HTTP缓存、静态资源服务以及作为反向代理等功能。
  • 占用资源少,处理并发能力强,能够支持大量的并发连接。
  • 由于其高性能、稳定性和灵活性,Nginx已经成为了很多大型网站和应用的首选服务器。

Nginx的进程

  • master进程:用于管理worker进程,加载配置文件
  • worker进程:用于处理请求连接

Nginx可以运用的应用场景

  1. Web网站服务,处理http静态页面请求
  2. 虚拟主机,实现一个服务器用于做多个网站站点
  3. 反向代理、负载均衡,可以作为网关代理服务器接收客户端的请求转发给后端节点服务器集群
  4. web缓存服务器

安装部署 Nginx 服务

(1)关闭防火墙

复制代码
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
vim /etc/sysconfig/selinux

(2)安装nginx环境依赖包

复制代码
yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make

(3)准备好nginx目录上传软件压缩包并解压

复制代码
cd /opt
mkdir nginx
tar xf nginx-1.12.0.tar.gz

(4)创建运行用户

复制代码
useradd -M -s /sbin/nologin nginx

(5)进入软件包目录进行配置软件模块

复制代码
cd nginx-1.12.0/
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module

(6)编译

复制代码
make -j 2 

(7)安装

复制代码
make install

(8)将 nginx 的可执行程序文件放入路径环境变量的目录(用于系统识别)

创建软连接,用于路径优化

复制代码
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

(9)添加 Nginx 系统服务

复制代码
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

(10)添加权限并重启nginx服务

复制代码
chmod 754 /lib/systemd/system/nginx.service
systemctl start nginx.service
systemctl enable nginx.service

Nginx如何进行平滑升级?

  1. 官网下载最新版本的nginx
  2. 上传到nginx服务器,使用 tar 进行解压
  3. 使用 .configure 进行配置,按照原有的配置进行配置
  4. 使用用make编译升级成二进制文件
  5. 把二进制文件 nginx 替换掉原有的老文件
  6. 使用 make upgrade 进行升级或用kill -USR2 $(cat /usr/local/nginx/logs/nginx.pid)

Nginx 与 Apache 有何区别?

最核心的区别:

Nginx 采用异步非阻塞机制,多个连接可以对应一个进程

Apache 采用的是同步阻塞+多进程/线程模型,一个连接对应一个进程

  • Nginx 抗并发能力更高
  • Nginx 更轻量,内存、CPU资源消耗更少
  • Nginx 配置简洁,使用场景多,稳定性高

Nginx虚拟主机

Nginx虚拟主机是一种配置多个域名或网站在同一台服务器上的方式。通过使用Nginx的虚拟主机功能,可以将不同的域名指向不同的项目或网站,并且在同一台服务器上实现多个网站的部署。

要配置Nginx虚拟主机,首先需要在Nginx的配置文件中定义多个server块。每个server块对应一个域名或网站。在每个server块中,需要指定域名或网站的监听端口、文件根目录、日志文件等配置信息。

Nginx有三种类型的虚拟主机

(1)基于域名的虚拟主机

server {

server_name XXX; #指定不同的域名

}

(2)基于IP的虚拟主机

server {

listen <IP>:端口; #指定不同的IP

}

(3)基于端口的虚拟主机

server {

listen IP:<端口>; #指定不同的端口

}

相关推荐
zcmodeltech8 小时前
智慧农业沙盘模型物联网控制系统设计:基于STM32与Modbus RTU的传感器-执行器闭环方案
服务器·分布式·stm32·嵌入式硬件·物联网·能源
邪修king8 小时前
Re:Linux系统篇(六):动静态库 & 链接机制【完整透彻版】
linux·运维·服务器
名为沙丁鱼的猫72910 小时前
【审计日志组件实践复盘】前端工程化 + 后端DDD架构(AOP切面拦截日志) + MBG
前端·架构
xqqxqxxq10 小时前
AI智能旅游规划系统 - 前端技术笔记
前端·笔记·旅游
陈随易17 小时前
bm2,MoonBit实现的pm2替代品
前端·后端·程序员
a11177619 小时前
农业数字孪生大屏网页 html开源
前端·html
圣光SG19 小时前
web操作题练习(六)
前端
闪亮的路灯20 小时前
威联通QTS使用自带web服务期代理前端(类似nginx)
前端·nginx·威联通
kyriewen21 小时前
我用AI写了半年代码——回头看,这5个能力正在退化
前端·javascript·ai编程
IT_陈寒21 小时前
Vite静态资源路径这个坑差点让我加班到凌晨
前端·人工智能·后端