一文带你搞懂什么是Nginx服务器

yizhihongxing

一文带你搞懂什么是Nginx服务器

Nginx服务器是一种轻量级的Web服务器和反向代理服务器。它被设计用来处理高并发的网络请求和静态资源的分发,同时对于动态Web应用具有较好的性能表现。

Nginx服务器的基本特性

  • 轻量级:Nginx的设计理念是高性能、低内存占用,擅长处理高并发连接和静态文件请求,适合用作静态资源服务器或反向代理服务器。
  • 高性能:相比于传统的Apache服务器,Nginx在处理静态资源和并发请求时表现更加出色。它通过事件驱动、异步非阻塞的设计使得能够处理大量并发请求,同时占用更低的系统资源。
  • 负载均衡:Nginx支持负载均衡功能,可将请求分发到多个后端服务器上,从而提升应用的性能和可靠性。
  • 动态模块:Nginx拥有广泛的动态模块库,可以通过编译安装或第三方模块集成来扩展功能。
  • 安全性:Nginx支持防火墙、访问控制、HTTPS等多项安全特性,可以保证应用的数据与通信安全。

Nginx的应用场景

  • 静态资源服务器:Nginx可以作为一个高性能的静态资源服务器,快速地响应客户端请求,实现图片、JS、CSS等静态资源的访问。
  • 反向代理服务器:Nginx可以做反向代理服务器,负责重定向和负载均衡,分配应用请求到指定的后台Web服务器。
  • Web应用服务器:Nginx支持FastCGI、uWSGI、SCGI等协议,可以配置为Web应用服务器,运行PHP、Python、Java等动态Web应用。
  • 云平台负载均衡器:Nginx可用于云平台负载均衡器实现,支持动态扩展、容灾备份、故障转移等功能,为云计算企业提供高效的负载均衡服务。

Nginx的安装与配置

下面分别以Ubuntu和CentOS为例介绍Nginx的安装和配置。

Ubuntu下的安装和配置

Step 1:更新软件源

sudo apt update
sudo apt upgrade

Step 2:安装Nginx

sudo apt install nginx

Step 3:启动Nginx

sudo service nginx start

CentOS下的安装和配置

Step 1:更新软件源

sudo yum update

Step 2:添加Nginx源

sudo yum install epel-release

Step 3:安装Nginx

sudo yum install nginx

Step 4:启动Nginx

sudo systemctl start nginx

Nginx与Apache的比较

Nginx与Apache是目前流行的两个Web服务器,它们使用不同的处理机制。

  • Apache是基于多进程的模型,在处理新连接的时候,每个连接都会创建新的进程或线程来处理,这样会导致大量的系统资源被占用。
  • Nginx采用事件驱动的方式,通过一个主线程不断的轮询每一个连接,将连接交给一个工作线程进行处理,这样可以做到较少的进程开销和较少的上下文切换,提高了系统处理能力。

示例1:建立静态资源服务器

Step 1:进入Nginx配置文件目录

cd /etc/nginx/

Step 2:创建新的站点

sudo mkdir sites-available
sudo mkdir sites-enabled
sudo touch sites-available/example.com

Step 3:编辑站点配置文件

sudo vi /etc/nginx/sites-available/example.com

在文件中写入下面代码:

server {
    listen       80;
    server_name  example.com;
    root /var/www/example.com;
    location / {
        index index.html;
    }
    error_page  404              /404.html;
    location = /404.html {
        internal;
    }
}

Step 4:激活站点配置

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

Step 5:创建项目目录

sudo mkdir /var/www/example.com
cd /var/www/example.com
sudo touch index.html

在index.html文件中加入一段文字

Hello, World! This is my first Nginx site.

Step 6: 重启Nginx

sudo service nginx restart

现在,你可以在浏览器中输入 http://example.com 来查看自己的网站。

示例2:配置动态应用服务器

Step 1:安装PHP和Nginx

sudo apt install php-fpm
sudo apt install nginx

Step 2:创建网站根目录和PHP文件

sudo mkdir /var/www/phpsite
sudo touch /var/www/phpsite/index.php

在index.php中输入:

<?php
echo "<h1>Hello, World!</h1>";
?>

Step 3:创建Nginx站点配置文件

sudo vi /etc/nginx/sites-available/phpsite

在文件中输入:

server {
    listen 80;
    server_name  phpsite.com;
    root /var/www/phpsite;
    index index.php;

    location / {
            try_files $uri $uri/ /index.php?$query_string;
            }
    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /var/www/phpsite$fastcgi_script_name;
    }
}

Step 4:将新站点设置为启动状态

sudo ln -s /etc/nginx/sites-available/phpsite /etc/nginx/sites-enabled/
sudo service nginx restart

现在,你可以在浏览器中访问 http://phpsite.com/index.php 直接查看PHP网页。

至此,你已经学会了如何安装、配置和使用Nginx服务器。祝你愉快!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:一文带你搞懂什么是Nginx服务器 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • 子系统安装nginx

    Win10中启用WSL WSL是微软和Canonical合作为开发人员提供的一个运行在win10环境下的一个Linux子系统,由微软编写核心代码,并由Canonical提供软件包的支持。要想使用WSL很简单,在“启用或关闭Windows功能”中找到“适用于Linux的Windows子系统(Bate)”,打开它,然后按照提示在系统设置里打开开发者模式即会自动安…

    Nginx 2023年4月9日
    00
  • 后台的代理nginx部署方法

    软件包如下:nginx-1.10.0.tar.gznginx-http-concat-master.zipngx_cache_purge-2.3.tar.gzopenssl-1.0.2h.tar.gzpcre-8.39.tar.gzzlib-1.2.8.tar.gz ngin部署方法:上面的安装包都存放在/apps/svr/soft目录下:cd /apps/…

    Nginx 2023年4月12日
    00
  • CentOS 7下编译安装Nginx 1.11.10教程

    下面是“CentOS 7下编译安装Nginx 1.11.10教程”的完整攻略。 准备工作 在开始编译安装Nginx之前,我们需要确保已经按照以下步骤进行准备工作: 安装编译环境:使用命令 $ yum groupinstall “Development tools” 安装编译所需的环境和工具。 安装pcre依赖:Nginx的正则表达式会使用pcre库,我们需要…

    Nginx 2023年5月16日
    00
  • Nginx如何配置Http、Https、WS、WSS的方法步骤

    一、Nginx配置HTTP的方法步骤: 1.安装Nginx服务器和相关组件。 2.修改Nginx的配置文件:/etc/nginx/nginx.conf。 3.在server块中添加以下代码: location / { proxy_pass http://your.domain.name:port_number;} 4.将your.domain.name替换成…

    Nginx 2023年5月16日
    00
  • 配置nginx 解决404 not found问题

    (laravel)nginx中配置了https,http访问正常,https访问页面功能无法实现 无论是配置80 还是443 server{}中 都要增加如下代码 location ~ \.php(.*)$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_split_path_i…

    Nginx 2023年4月11日
    00
  • docker-compose 部署 Nginx、Postgres、redis、java应用

    文件夹结构 C:\Users\Administrator\Desktop\lsheet>tree /f │ │ docker-compose.yml #部署文件 │ ├─java-server │ application-dev.yml #项目配置 │ application.yml #项目配置 │ web-lockysheet-server.jar …

    2023年4月9日
    00
  • nginx 通过IP访问项目

    项目新需求,因为是小范围使用的网站,所以不打算配域名,直接通过IP访问当前项目。 环境: LNMP 一键集成环境 当前IP指向的目录 :/home/wwwroot/default/ 但是我的项目。需要它指向到当前目录的Code目录里面的public 所以:、 1.进入nignx目录。   2.  在这里添加上需要访问的目录 然后保存退出 3. # vim n…

    Nginx 2023年4月11日
    00
  • 【转】nginx的模块变量(HTTP核心模块变量)

    nginx的HTTP核心模块引入了大量的变量,可以在指定范围内使用这些变量的值,可以分为三类:一是客户请求头中发送的变量、二是服务器端响应头中的变量,第三是nginx产生的各种变量,我们可以使用$变量名的形式来引用这些变量。 一、请求头中的变量 规律:都是以$http_开头的变量   $http_host    请求的主机名 $http_user_agent…

    Nginx 2023年4月11日
    00
合作推广
合作推广
分享本页
返回顶部