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

linux---Nginx详细教程(包含安装,网站部署)

Nginx是一个高性能的HTTP和反向代理服务器,也可以用作邮件代理服务器,其以占有内存少、并发能力强、稳定性高、丰富的功能集、低系统资源消耗而闻名。以下是对Nginx的详细教程:

一、Nginx简介

Nginx由俄罗斯人开发,第一个公开版本0.1.0发布于2004年10月4日。其源代码以类BSD许可证的形式发布,特点是占有内存少、并发能力强,官方的并发量最高可达5w/s,在整个web应用程序的生产环境使用率中名列前茅。

二、Nginx的功能

  1. 负载均衡:Nginx支持多种负载均衡算法,如轮询、最少连接、IP哈希等,可以灵活地分配流量至多个后端服务器,提高网站访问速度和稳定性。
  2. 反向代理:Nginx中的反向代理是一个非常常见的功能,它可以作为客户端和后端服务器之间的中介,将客户端请求转发到一个或多个后端服务器上,隐藏后端服务器的真实IP,提高网站安全性。
  3. Web服务器:Nginx可以高效处理静态资源,如HTML、CSS、JS、图片等,适合作为Web服务器。
  4. 动静分离:动静分离的基本思想是将静态资源请求(如图片、CSS、JS等)直接由Nginx处理,而将动态请求(如API调用、表单提交等)转发给后端服务器处理。通过Nginx的动静分离,可以减轻后端服务器的压力,并更好地利用缓存,提高静态资源的加载效率。

三、Nginx的安装与配置

使用YUM包管理器安装Nginx:

yum install -y nginx

使用APT包管理器安装Nginx:

apt install -y nginx

源码编译安装Nginx:

  1. 安装编译工具及库文件
    • 安装GCC编译器:GCC是一个开源的编译器集合,用于处理各种各样的语言,其中就包含了C语言。使用命令yum install -y gcc来安装,安装成功后,可以通过gcc --version来查看是否安装成功。
    • 安装PCRE库:PCRE(Perl Compatible Regular Expression)兼容正则表达式库,Nginx的Rewrite模块和http核心模块都会使用到PCRE正则表达式语法。使用命令yum install -y pcre pcre-devel来进行安装,安装成功后,可以通过rpm -qa pcre pcre-devel来查看是否安装成功。
    • 安装zlib库:zlib库提供了开发人员的压缩算法,Nginx的各个模块中需要使用gzip压缩,所以也需要提前安装zlib库及源代码zlib和zlib-devel。使用命令yum install -y zlib zlib-devel来进行安装,安装成功后,可以通过rpm -qa zlib zlib-devel来查看是否安装成功。
    • 安装OpenSSL库:OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包进行安全通信,并且避免被窃听。在Nginx中,如果服务器需要提供安全网页时就需要用到OpenSSL库。使用命令yum install -y openssl openssl-devel来进行安装,安装成功后,可以通过rpm -qa openssl openssl-devel来查看是否安装成功。
  2. Nginx的源码安装
    • 进入Nginx官网查找需要下载版本的链接地址,然后使用wget命令进行下载。
    • 解压缩下载的安装包。
    • 进入安装包目录,执行./configure命令进行配置,指定Nginx的安装路径、模块等。
    • 执行make命令进行编译。
    • 执行make install命令进行安装。
    • 运行Nginx,可以通过命令./nginx启动Nginx服务。
  3. Nginx的配置文件
    • Nginx的配置文件通常位于/etc/nginx/nginx.conf,也可以通过Nginx安装时的--conf-path参数指定。
    • 配置文件由多层块组成,包括主配置块、HTTP块、Server块和Location块。
    • 在配置文件中,可以设置Nginx的全局参数、HTTP相关的参数、虚拟主机的参数以及URL路径的具体行为等。
  4. Nginx的启动、停止、重启和状态查看
    • 启动Nginx:使用命令systemctl start nginx./nginx(在Nginx的安装目录下)。
    • 停止Nginx:使用命令systemctl stop nginx./nginx -s quit(在Nginx的安装目录下)。
    • 重启Nginx:使用命令systemctl restart nginx./nginx -s reload(在Nginx的安装目录下,实现平滑重启)。
    • 查看Nginx状态:使用命令systemctl status nginx

更详细源码编译教程可以参考linux—Nginx源码安装

四、Nginx的应用场景

  1. 静态资源服务器:Nginx可以作为静态资源服务器,用于加速图片、CSS、JS等文件的上传和下载。
  2. 负载均衡:Nginx可实现负载均衡,将请求分发到多台后端服务器,提高网站访问速度和稳定性。
  3. 反向代理:Nginx可作为反向代理服务器,隐藏后端服务器的真实IP地址,提高网站的安全性。
  4. 缓存加速:Nginx可通过缓存静态资源,减少后端服务器的压力,提高网站访问速度。

五、Nginx的优缺点

  1. 优点
    • 轻量级,相对Apache占用更少的资源。
    • 因为Nginx是非阻塞异步网络IO模型(epoll),高并发下能保持低资源低消耗,因此更适合做高并发(Apache采用的是select模型/线型轮询)。
    • 处理静态网页上表现的更好(简单、占资源少)。
    • 反向代理、负载均衡性能更强。
    • 可对后端服务器进行健康状态检查。
    • 支持网站缓存(加速网页访问)。
  2. 缺点
    • 在处理动态请求时,性能可能不如Apache(动态请求会用到伪静态,而Apache对rewrite支持的更好)。
    • rewrite模块没有Apache完善。

六、搭配网站

1.在/etc/nginx/conf.d目录下创建配置文件

vim /etc/nginx/conf.d/nginx.conf

2.添加下面代码(根据自己需求修改)

# 定义一个server块,用于配置一个虚拟主机(HTTP)
server {
    # 监听80端口,这是HTTP协议的默认端口
    listen 80;
    
    # 设置虚拟主机的域名,这里是xxxx.com
    server_name xxxx.com;
    
    # 重定向所有HTTP请求到HTTPS
    return 301 https://$host$request_uri;
}
 
# 定义一个server块,用于配置一个虚拟主机(HTTPS)
server {
    # 监听443端口,这是HTTPS协议的默认端口
    listen 443 ssl;
    
    # 设置虚拟主机的域名,与HTTP部分相同
    server_name xxxx.com;
    
    # 指定SSL证书和私钥文件的路径
    ssl_certificate /path/to/your/certificate.crt;
    ssl_certificate_key /path/to/your/private.key;
    
    # 可选的:指定SSL证书链(如果您的证书由中间CA签发)
    # ssl_trusted_certificate /path/to/your/chain.crt;
    
    # SSL会话参数配置
    ssl_session_timeout 1d;
    ssl_session_cache shared:SSL:50m;
    ssl_session_tickets off; # 对于旧版Nginx,可能需要设置为on以支持会话票据
    
    # 现代加密套件和协议配置
    ssl_protocols TLSv1.2 TLSv1.3; # 仅启用TLS 1.2和1.3
    ssl_ciphers HIGH:!aNULL:!MD5; # 使用高强度的加密算法
    ssl_prefer_server_ciphers on; # 优先使用服务器端的加密算法配置
    
    # HSTS(HTTP Strict Transport Security)配置,强制浏览器使用HTTPS
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";
    
    # 指定静态文件的根目录
    root /home/www/dist;
    
    # 配置请求的路由处理
    location / {
        index index.html;
        try_files $uri $uri/ /index.html;
    }
    
    # 配置访问日志
    access_log /var/log/nginx/xiao.com_access.log main;
    
    # 配置错误日志
    error_log /var/log/nginx/xiao.com_error.log error;
    
    # 配置错误页面的处理
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }
}

3.检查

nginx -t

4.重启服务

systemctl reload nginx.service 

http://www.kler.cn/a/502330.html

相关文章:

  • 【数据可视化-12】数据分析岗位招聘分析
  • Git学习记录
  • R语言的语法糖
  • C#学习笔记 --- 简单应用
  • Redis 优化秒杀(异步秒杀)
  • ASP.NET Core 中使用 Cookie 身份验证
  • 2008-2020年各省社会消费品零售总额数据
  • vim基本命令(vi、工作模式、普通模式、插入模式、可视模式、命令行模式、复制、粘贴、插入、删除、查找、替换)
  • PHP答题考试系统:智慧教育的璀璨明珠
  • pyqt鸟瞰
  • 【三维数域】三维数据调度-负载均衡和资源优化
  • 2023-2024 学年 广东省职业院校技能大赛(高职组)“信息安全管理与评估”赛题一
  • 面经学习-操作系统-上下文切换
  • 服务器出现蓝屏现象的原因有什么?
  • Java URLClassLoader类来动态加载数据库驱动jar
  • Linux的用户管理
  • 数据结构(Java版)第八期:LinkedList与链表(三)
  • OpenCV的图像分割
  • 利用开源AI智能名片2+1链动模式S2B2C商城小程序拓展社交电商的深度实践探索
  • uniapp 预加载分包,减少loading
  • 【高阶数据结构】位图
  • 【react进阶】create-react-app高阶配置
  • Perl语言的网络编程
  • Zookeeper单机操作
  • [mysql] mariabackup增量备份数据库
  • 80个Three.js 3D模型资源