Nginx 安装详细教程

Nginx 安装详细教程

简介

Nginx 是一款高性能的 Web 服务器,可以作为反向代理、负载均衡等用途。在本篇文章中,我们将讲解如何在 Linux 系统下进行 Nginx 的安装。

安装 Nginx

步骤一:更新系统软件包

在安装 Nginx 前,首先要确保系统中的软件包已经更新到最新版本。可以使用如下命令来更新系统软件包:

sudo apt update
sudo apt upgrade

步骤二:安装 Nginx

  1. 使用以下命令安装 Nginx:
sudo apt install nginx
  1. 安装完成后,启动 Nginx 服务:
sudo systemctl start nginx
  1. 检查 Nginx 的状态:
sudo systemctl status nginx

如果看到如下输出,说明 Nginx 已经运行起来:

● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2021-05-18 09:48:15 UTC; 4min 23s ago

步骤三:设置防火墙规则(可选)

如果系统中有防火墙软件,需要设置开放相关端口,允许 Nginx 的请求通过。

ufw 防火墙为例,使用以下命令开放 HTTP 和 HTTPS 端口:

sudo ufw allow 'Nginx HTTP'
sudo ufw allow 'Nginx HTTPS'

示例说明一:配置静态服务器

在默认情况下, Nginx 配置文件位于 /etc/nginx/nginx.conf, 网站文件位于 /var/www/html。我们可以通过配置 Nginx,将这个目录作为一个静态资源文件目录。

  1. 备份默认配置文件:
sudo mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.backup
  1. 创建一个新的 Nginx 配置文件:
sudo nano /etc/nginx/nginx.conf 

复制以下内容并保存:

user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
    worker_connections 768;
}

http {

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    server {
        listen 80;
        server_name example.com;
        root /var/www/html;
        index index.html;
    }
}
  1. 重新启动 Nginx:
sudo systemctl restart nginx
  1. 创建测试文件:
sudo nano /var/www/html/index.html

在文件中输入 "Hello, Nginx!",保存并退出。

  1. 浏览器中输入服务器的 IP 地址或域名,如: http://example.com,如果成功返回“Hello, Nginx!”,则表明 Nginx 已配置成功。

示例说明二:反向代理服务器

Nginx 也可以被用作反向代理服务器。在这个例子中,我们将使用 Nginx 来代理请求到一个本地的 Node.js 服务。

  1. 安装 Node.js

在反向代理时需要使用到 Node.js,如之前可能需要先更新系统并安装 Node.js:

sudo apt update
sudo apt install nodejs
  1. 启动 Node.js 服务

创建一个 server.js 文件,并输入以下内容:

const http = require('http');

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello, Node.js!');
});

server.listen(3000, () => {
  console.log(`Node.js server running at http://localhost:3000/`);
});

使用以下命令启动该服务:

node server.js
  1. 配置 Nginx

备份默认配置文件:

sudo mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.backup

创建一个新的 Nginx 配置文件:

sudo nano /etc/nginx/nginx.conf 

复制以下内容并保存:

user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
    worker_connections 768;
}

http {

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    upstream nodejs {
        server 127.0.0.1:3000;
    }

    server {
        listen 80;
        server_name example.com;
        location / {
            proxy_pass http://nodejs;
        }
    }
}

4.重新启动 Nginx:

sudo systemctl restart nginx

5.测试代理:

在浏览器中输入服务器的 IP 地址或域名,如: http://example.com,如果成功返回“Hello, Node.js!”,则表明反向代理已经成功配置。

结论

以上就是在 Linux 系统下安装、配置 Nginx 的完整攻略,包括两个常见的示例。希望能够帮助大家成功安装、使用 Nginx。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Nginx 安装详细教程 - Python技术站

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

相关文章

  • Nginx访问限制配置详解

    下面是“Nginx访问限制配置详解”的完整攻略,包含两条示例说明。 1. 什么是Nginx访问限制? Nginx访问限制是通过配置Nginx的访问控制模块实现的一种限制,它可以根据用户的IP地址、访问频率、请求的URL等信息,对访问者进行限制和防护。 2. Nginx访问限制的配置方式 在Nginx中,访问限制主要通过配置访问控制模块来实现,常用的控制模块有…

    Nginx 2023年5月16日
    00
  • Nginx设置访问服务器某个目录

    最近实时的项目有个需求,就是要查看集群中各个节点下面跑的项目的Log。于是想到了用Nginx将log目录暴露出来集成到现有的监控平台中去。nginx的安装配置在前面的博客中有提到过,这里记录下如何配置访问log目录。 1 首先,设置权限 配置需要访问的log目录有权限 chmod -R /…/… 在nginx.conf文件中,添加或覆盖下面一行 us…

    Nginx 2023年4月16日
    00
  • 【转载】Nginx基础:6.webcache缓存服务

    1.概述      Nginx从0.7.48版本开始,支持了类似Squid的缓存功能。这个缓存是把URL及相关组合当作Key,用md5编码哈希后保存在硬盘上,所以它可以支持任意URL链接,同时也支持404/301/302这样的非200状态码。虽然目前官方的Nginx Web缓存服务只能为指定URL或状态码设置过期时间,不支持类似Squid的PURGE指令,手…

    Nginx 2023年4月12日
    00
  • nginx 做反向代理的时候不加载静态资源

    鉴于自己的技术凿实很菜,就在网上浏览技术大牛的博客边学边操作,最近发现一件事是就是我在我的百度云服务器上使用nginx的时候没有办法加载静态资源,网上搜了一些,发现挺简单的就是在nginx.conf文件中配置: server { listen 85; server_name server; location /{ proxy_pass_header Serv…

    Nginx 2023年4月10日
    00
  • Nginx tcp限制并发、IP、记日志

    L:114     Syntax: limit_conn_zone key zone=name:size;//类似http limit_conn 需要开个共享内存  zone=name(共享内存名称):size(共享内存大小); Default: — Context: stream limit_conn_zone $binary_remote_addr zo…

    Nginx 2023年4月13日
    00
  • 使用Nginx做WebSockets代理教程

    关于使用Nginx做WebSockets代理的完整攻略,可以按照以下步骤进行: 安装Nginx 在进行WebSockets代理之前,需要安装Nginx。可以使用以下命令进行安装: Ubuntu或Debian系统: sudo apt-get install nginx CentOS或Fedora系统: sudo yum install nginx 修改Ngin…

    Nginx 2023年5月16日
    00
  • nginx 499 状态码优化

    在grafana界面中发现不少499的状态码,在网上了解到出现499的原因大体都是说服务端处理时间过长,客户端主动关闭了连接。     既然原因可能是服务端处理时间太长了,看一下upstream_response_time时间可以了解到后端程序处理了多久。 先了解一下什么是upstream_response_time和request_time分别是什么: r…

    2023年4月10日
    00
  • Nginx_地址重写(rewrite)_日志管理(log_format)_压缩输出_Nginx设定限速_Nginx设置反向代理及反向代理缓存

    Nginx地址重写 Nginx rewrite rewrite语法规则1).变量名可以使用 “=” 或 “!=” 运算符~ 区分大小写~* 不区分大小写^~ 禁止表达式匹配 找到后就不向下找了= 精确匹配!~ 和 !~* 与 ~ !~ 相反-f 和 !-f 用来判断文件是否存在-d 和 !-d 用来判断目录是否存在-e 和 !-e 用来判断文件或目录是否存在…

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