当前位置: 首页 > news >正文

使用Nginx搭建web网站

4.2.1nginx简介

1.概念

nginx 是一款高性能的 HTTP 和反向代理 Web 服务器,同时具备电子邮件代理功能,以轻量级、高并发处理能力为核心优势。

2.特点

  • 高并发:可处理数万甚至十万级并发连接,适配高访问量场景。
  • 低内存消耗:相比同类 Web 服务器,内存占用更高效。
  • 高可靠性:采用 “主进程 + 工作进程” 架构,单个进程异常不影响整体服务。
  • 功能丰富:支持反向代理、负载均衡、静态资源服务等多种场景。

3.架构

采用 主进程(Master Process)+ 工作进程(Worker Process)模式:

  • 主进程:负责管理工作进程(启动、停止、监控等)。
  • 工作进程:负责处理客户端请求,通过异步非阻塞机制高效处理大量连接。

4.关键工作机制

基于事件驱动的异步非阻塞模型,借助 epoll(Linux)、kqueue(BSD)等高效事件通知机制,避免传统阻塞模型的资源浪费,实现对多连接的高效处理。

5.正向代理

代理客户端向服务器发起请求,典型场景如客户端需间接访问目标服务器(如科学上网)。nginx 接收客户端请求后,转发至目标服务器并返回响应。

6.反向代理

代理服务器端向客户端提供服务,客户端不知晓实际处理请求的后端服务器。nginx 可实现请求分发、隐藏后端信息、SSL 卸载、缓存等功能,是服务架构中 “流量入口” 的常见选择。

7.负载均衡

当存在多台后端服务器时,nginx 通过轮询、权重、IP 哈希、最少连接等策略,将客户端请求合理分配至不同后端,提升服务吞吐量与可靠性,避免单服务器过载。

4.2.2部署Nginx

setenforce  0           #设置SELinux为宽容模式
systemctl stop  firewalld #关闭防火墙
systemctl disable  firewalld #禁用防火墙开机自启
yum  install  nginx  -y #下载Nginx包
nginx  -V  # 查看版本,编译器、配置参数等信息
systemctl start  nginx   # 启动httpd
systemctl enable  nginx  # 设置开机启动Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service →                       /usr/lib/systemd/system/nginx.service. #成功启动systemctl status  nginx    # 查看状态,q键退出查看ps  -ef  |  grep  nginx  # 查看进程
root        1690       1  0 13:57 ?        00:00:00 nginx: master process /usr/sbin/nginx
nginx       1691    1690  0 13:57 ?        00:00:00 nginx: worker process
nginx       1692    1690  0 13:57 ?        00:00:00 nginx: worker process
root        1726    1510  0 14:00 pts/0    00:00:00 grep --color=auto nginx# 测试,Windows中打开浏览器输入服务器IP地址

4.2.3常用命令

systemctl系列

systemctl  start  nginx   # 启动服务
systemcctl restart  nginx  # 重启服务
systemctl  enable  nginx   # 开机启动
systemctl  stop  nginx     # 停止服务
systemctl  disable  nginx  # 取消开机启动
systemctl  status   nginx  # 查看状态

nginx自带命令

nginx    # 启动nginx
nginx   restart  # 重启服务
nginx  -s  reload  # 重新加载配置文件
nginx  -s  stop    # 强行停止服务
nginx  -s  quit    # 优雅停止服务,即所有请求处理完后退出服务
nginx  -v         # 查看版本号
nginx -t         # 检查配置文件的语法错误,无错返回ok

4.3虚拟主机

4.3.1基于IP地址的虚拟主机

原理

如果一台服务器有多个IP地址,而且每个IP地址与服务器上部署的每个网站一一对应,当用户请求的IP地址不同,则会访问到不同网页,且每个网站都有一个独立的IP地址。(主机必须有多个IP地址)

步骤
#1.初始配置
setenforce  0           # 恢复快照
systemctl stop  firewalld
systemctl disable  firewalld
yum  install  nginx  -y
systemctl start  nginx   # 启动httpd
systemctl enable  nginx  # 设置开机启动
#2.增加IP地址
nmcli c  modify ens160 +ipv4.addresses 192.168.145.150/24
nmcli c  modify ens160 +ipv4.addresses 192.168.145.151/24
#重新加载网卡,连接激活
nmcli c  reload
nmcli c  up  ens160
#3.创建目录写入文件方便验证
#4.修改配置文件
vim  /etc/nginx/conf.d/vshost.conf   # 添加内容
server {listen       80; #端口号默认80server_name  192.168.145.150;root         /www/ip150;}
server {listen       80;server_name  192.168.145.151;root         /www/ip151;}
#5.重启服务,测试

4.3.2基于端口号的虚拟主机

基于上面不同只是对端口号进行修改

vim  /etc/nginx/nginx.conf #添加内容
server {listen       5111; #端口号修改server_name  _;root         /www/port5111;error_page 404 /404.html;location = /40x.html {}error_page 500 502 503 504 /50x.html;location = /50x.html {}}server {listen       5222; #端口号修改server_name  _;root         /www/port5222;error_page 404 /404.html;location = /40x.html {}error_page 500 502 503 504 /50x.html;location = /50x.html {}}

4.3.3基于域名的虚拟主机

1.手动配置IP与域名的映射关系
# Linux端
# vim  /etc/hosts
# 添加如下内容:
192.168.145.130  www.zy.com
192.168.145.130  www.sxhkt.com# windows端,打开:
C:\Windows\System32\drivers\etc\hosts文件,添加如下内容:#运行cmd然后notepad hosts以管理员身份打开记事本才能修改保存 
192.168.145.130  www.zy.com
192.168.145.130  www.sxhkt.com
2.修改配置文件
vim  /etc/nginx/nginx.conf 
# 定位第1行,添加:server {listen       80;server_name  www.zy.com;   # 写域名root         /www/zy;error_page 404 /404.html;location = /40x.html {}error_page 500 502 503 504 /50x.html;location = /50x.html {}}server {listen       80;server_name  www.sxhkt.com;root         /www/sxhkt;error_page 404 /404.html;location = /40x.html {}error_page 500 502 503 504 /50x.html;location = /50x.html {}}

4.4基于https协议的静态网站

4.4.1原理

1.ssl协议分层:

  • SSL记录协议 (SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能

  • SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等

2.ssl协议提供的服务:

  • 认证用户和服务器,确保数据发送到正确的客户机和服务器

  • 加密数据以防止数据中途被窃取

  • 维护数据的完整性,确保数据在传输过程中不被改变

4.4.2HTTPS通信机制

1. 握手阶段(Handshake)

  • 客户端发起请求:浏览器发送ClientHello消息,包含支持的加密算法列表和随机数

  • 服务器响应:返回ServerHello消息,选定加密算法并发送服务器随机数+数字证书(包含公钥)
  • 证书验证:客户端验证证书有效性(CA机构、有效期等)
  • 密钥交换:客户端生成预主密钥(Pre-Master Secret),用服务器公钥加密后传输
  • 会话密钥生成:双方通过随机数和预主密钥计算得到对称加密所需的会话密钥

2. 加密通信阶段

  • 对称加密传输:使用协商好的会话密钥加密HTTP报文
  • 数据完整性校验:通过MAC(消息认证码)防篡改
  • 会话恢复:支持Session ID或Session Ticket机制复用已建立的加密参数

4.4.3建立加密认证网站

#先做初始配置再新建存储网站数据文件的目录#制作证书所用的私钥文件
openssl  genrsa  -aes128  2048 > /etc/nginx/zy.key
#Enter pass phrase:             #这是需要你输入密码#制作证书
openssl  req  -utf8  -new  -key  /etc/nginx/zy.key  -x509  -days  365  -out  /etc/nginx/zy.crt#在加载SSL支持的Nginx并使用上述私钥时除去必须的口令
cd  /etc/nginx
cp  zy.key  zy.key.org #备份文件,防止损坏
openssl rsa -in zy.key.org -out zy.key #提取私钥#修改配置文件
vim  /etc/nginx/nginx.confserver {listen       443 ssl http2;server_name  192.168.145.130;root         /www/zy;ssl_certificate  /etc/nginx/zy.crt;ssl_certificate_key  /etc/nginx/zy.key;}
server {      # 输入http跳转到httpslisten 80;server_name 192.168.145.130;return 301 https://192.168.145.130;}#实验做完后都需要重启服务测试结果

4.5使用LNMP搭建私有云存储

搭建环境

1.准备工作:做好初始配置

2.搭建环境

yum  install  nginx  mariadb-server  php*  -y #下载数据库包#解压缩到根目录
cd  /
unzip  /nextcloud-25.0.1.zip #修改权限,方便安装
chmod  -Rf  777  /nextcloud#配置数据库
systemctl start  mariadb   # 启动数据库
mysql                      # 进入数据库
create  database  nextcloud;  # 创建数据库(“;”不可省略)
create  user  'nextcloud'@'localhost' identified  by  '123456';   # 创建用户及密码
grant all on  nextcloud.*  to  'nextcloud'@'localhost';      # 设置权限
exit       # 退出#配置完后重启数据库

3.配置nginx

vim  /etc/nginx/nginx.conf server {listen       80;server_name  192.168.145.130;root         /nextcloud;}#重启httpd服务
systemctl  start  nginx

4.安装

  • 打开浏览器后输入服务器IP地址,进入nextcloud安装向导

  • 管理员的用户名即密码自定

  • 存储与数据库:选择MySQL/MariaDB,设置数据库用户为nextcloud,密码:123456,数据库名:nextcloud,主机名:localhost

5.域名信任

#修改配置文件vim  /nextcloud/config/config.php
# 按照下面的内容对源文件进行修改
<?php
$CONFIG = array ('instanceid' => 'ocvy7jm0iqom','passwordsalt' => 'jLg0GXwJtlj8vowMsLpN5MbBSRsoiC','secret' => 'ayTVaC6dsHrSKgXazVP6llFMWdNVxjF582v5pAPKuyEecdTU','trusted_domains' =>array (0 => '192.168.145.130',1 => '2dc0afad.r17.cpolar.top',  # 需添加),'datadirectory' => '/nextcloud/data','dbtype' => 'mysql','version' => '25.0.1.1','overwrite.cli.url' => 'http://192.168.145.130','dbname' => 'nextcloud','dbhost' => 'localhost','dbport' => '','dbtableprefix' => 'oc_','mysql.utf8mb4' => true,'dbuser' => 'nextcloud','dbpassword' => '123456','installed' => true,
);# 保存退出后重试

6.依旧访问测试

http://www.dtcms.com/a/598835.html

相关文章:

  • 空壳网站清理通知校园官方网站建设
  • 石家庄营销网站建设高校网站群建设的公司有哪些
  • ps做网站wordpress主题查询
  • Git操作基本流程
  • 有做兼职赚钱的网站吗东莞住建局
  • php做的网站模板下载地址柳州公积金网站
  • 本地网站建设流程网站建设收获与不足
  • 安阳网站如何做优化西安搜推宝网络科技有限公司
  • 简单网站php源码下载济南网站制作工具
  • C语言函数与模块化设计:构建可扩展AI底层库的工程实践
  • C++: map和set
  • 河南映天建设网站临沂网站建设企业
  • 建设银行广西分行招聘网站织梦怎么做企业网站
  • 网页制作工具的选择与网站整体风格没有关系建设网站需要什么资质
  • 中国企业网站建设案例中华香烟网上商城
  • TSMC 28nm EFP.Mx.S.1 DRC该如何fix
  • 基于Matlab的欧拉法和龙格-库塔法微分方程求解
  • 基于单片机的预约保温型智能电饭锅控制系统设计与实现
  • 做绿色产品的网站wordpress 热门排序
  • 上市公司网站建设中山seo排名优化
  • 十二、深度学习里程碑式模型:AlexNet
  • 做旅游销售网站平台pptwordpress去水印插件
  • 做汽车介绍视频的网站吗企业信息系统架构
  • 涟源市建设局网站wordpress另一更新正在运行
  • 网站维护什么情况莆田社交网站
  • Redisson 和 Jedis 的区别
  • 网页制作和网站开发实验报告网站建设续费催款通知书
  • 爬虫案例之爬取当当网书籍信息(最新独特版)
  • 建设银行网站怎么看不见余额wordpress page id
  • 【目标检测】VS2026+QT6.9+ONNXruntime+OPENCV+YOLO11(详细注释)(附测试模型和图像)