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

}

相关推荐
milanleon6 分钟前
使用Spring Security进行登录认证
java·前端·spring
excel9 分钟前
🚀 从零开始:如何从 GPTsAPI.net 申请 API Key 并打造自己的 AI 服务
前端
期待のcode1 小时前
@RequestBody的伪表单提交场景
java·前端·vue.js·后端
栀秋6661 小时前
防抖 vs 节流:从百度搜索到京东电商,看前端性能优化的“节奏哲学”
前端·javascript
一颗烂土豆1 小时前
vfit.js v2.0.0 发布:精简、语义化与核心重构 🎉
前端·vue.js·响应式设计
有意义1 小时前
深入防抖与节流:从闭包原理到性能优化实战
前端·javascript·面试
SoveTingღ1 小时前
【问题解析】我的客户端与服务器交互无响应了?
服务器·c++·qt·tcp
zhougl9961 小时前
Vuex 模块命名冲突:问题解析与完整解决方案
linux·服务器·apache
可观测性用观测云2 小时前
网站/接口可用性拨测最佳实践
前端
爱丽_2 小时前
MyBatis动态SQL完全指南
服务器·sql·mybatis