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:<端口>; #指定不同的端口

}

相关推荐
妄想出头的工业炼药师8 分钟前
cuda如何安装卸载
linux·运维·服务器
暮紫李11 分钟前
项目中如何强制使用pnpm
前端
哈哈哈笑什么13 分钟前
如何防止恶意伪造前端唯一请求id
前端·后端
kevinzzzzzz16 分钟前
基于模块联邦打通多系统的探索
前端·javascript
小胖霞19 分钟前
彻底搞懂 JWT 登录认证与路由守卫(五)
前端·vue.js·node.js
柳鲲鹏19 分钟前
LINUX下载编译libcamera
linux·运维·服务器
用户938169125536021 分钟前
VUE3项目--组件递归调用自身
前端
昔人'29 分钟前
CSS content-visibility
前端·css
Embedded-Xin33 分钟前
Linux架构优化——spdlog实现压缩及异步写日志
android·linux·服务器·c++·架构·嵌入式
灵魂学者35 分钟前
Vue3.x —— ref 的使用
前端·javascript·vue.js