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

一文带你搞懂什么是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设置目录浏览并配置验证

    Nginx默认是不允许进行列目录的,如果需要使某个目录可以进行浏览,可如下设置:如: 让/var/www/soft 这个目录在浏览器中完成列出. 一、设置目录浏览1、打开/usr/local/nginx/conf/nginx.conf,找到WebServer配置处,加入以下内容: location /soft/ { root /var/www/; 此处为so…

    2023年4月9日
    00
  • Nginx源码编译

    有时由于添加了自己编写的c++模块,或者改了源码的一些名称、配置什么的,需要自行编译nginx。 可以先下下来源码,然后需要的话就自己改下源码或增加模块,最后再编译成linux或者windows平台来用。 参考 官方手册 编译windows版nginx-rtmp-module Windows编译Nginx源码 Windows上编译Nginx windows编…

    Nginx 2023年4月13日
    00
  • 【Nginx】–Linux服务器中配置Nginx一个域名访问多个项目

    务器配置个人博客和其它项目使其能够根据不同 url 跳转到不同项目,(例如:localhosh://A 项目/,localhosh://B 项目/ ) 因为对服务器和 Nginx 部署了解较少,在此记录一下 location 模块的匹配介绍 ”=”前缀指令匹配,如果匹配成功,则停止其他匹配。 普通字符串指令匹配,顺序是从长到短,匹配成功的 location …

    Nginx 2023年4月11日
    00
  • nginx 配置用户认证

    nginx 配置用户认证有两种方式: 1.auth_basic 本机认证,由ngx_http_auth_basic_module模块实现。配置段: http, server, location, limit_except 2.auth_request,由ngx_http_auth_request_module模块实现。配置段:http, server, lo…

    2023年4月10日
    00
  • 【nginx】中server配置说明

    server { listen 80; //监听的端口号 server_name localhost; //用域名方式访问的地址 #charset koi8-r; //编码 #access_log /var/log/nginx/host.access.log main; //访问日志文件和名称 location / { root /usr/share/ngi…

    Nginx 2023年4月11日
    00
  • [Centos7]无法访问配置好的nginx

    Centos7无法访问配置好的nginx 临时生效   # 重启虚拟机,将失效 iptables -I INPUT -p TCP –dport 80 -j ACCEPT        永久有效 # 在防火墙中开放80端口 firewall-cmd –permanent –zone=public –add-port=80/tcp # 重新加载防火墙配置…

    Nginx 2023年4月10日
    00
  • Nginx如何配置多个服务域名解析共用80端口详解

    当我们需要在同一台服务器上配置多个不同的网站时,我们往往使用不同的端口进行访问,例如网站 A 使用 80 端口,网站 B 使用 81 端口,以此类推。但是这样会使得用户访问网站时需要附带端口号,增加了访问时的不方便性。因此,我们可以通过配置 Nginx 服务器,使用不同的域名将流量分配到不同的子网站,使得多个网站共用 80 端口的方式来解决这个问题。 修改 …

    Nginx 2023年5月16日
    00
  • Nginx安装完成没有生成sbin目录的解决方法

    首先,出现Nginx安装后没有生成sbin目录的问题一般是因为我们没有正确的配置环境变量,导致系统找不到文件。以下是解决这个问题的详细攻略。 问题原因 当我们完成Nginx的安装时,sbin目录应该会自动生成,但是如果出现问题,可能是环境变量没有被设置正确,导致目录没有生成。这可能是由于重复安装等原因引起的。 解决方法 方法一 第一种解决方法是重新安装Ngi…

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