Nginx 安装与配置规则入门详解

  

下面是 Nginx 安装与配置规则的完整攻略:

Nginx 安装与配置规则入门详解

一、介绍

Nginx 是一款开源的高性能 Web 服务器软件,它可以作为反向代理、负载均衡服务器和 HTTP 缓存服务器。本文将介绍如何在 Linux 系统上安装并配置 Nginx,并给出两个实际应用的示例。

二、安装 Nginx

2.1 在 Ubuntu 系统上安装 Nginx

在 Ubuntu 系统上,可以使用 apt-get 命令来安装 Nginx。具体方法如下:

sudo apt-get update
sudo apt-get install nginx

安装完成后,使用以下命令检查 Nginx 是否已经启动:

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 Fri 2022-01-07 14:11:54 CST; 1h 19min ago

2.2 在 CentOS 系统上安装 Nginx

在 CentOS 系统上,可以使用 yum 命令来安装 Nginx。具体方法如下:

yum install nginx

安装完成后,使用以下命令检查 Nginx 是否已经启动:

systemctl status nginx.service

若 Nginx 已经启动,会出现如下信息:

● nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/nginx.service.d
           └─php-fpm.conf
   Active: active (running) since Thu 2022-01-06 23:29:38 CST; 11h ago

三、配置 Nginx

3.1 修改默认网站设置

Nginx 默认的网站设置在 /etc/nginx/sites-available/default 文件中。打开该文件,修改以下参数:

  1. 将默认监听端口改为 80
listen 80 default_server;
  1. 修改默认网站目录:
root /var/www/html;
  1. 将原始的欢迎页面注释掉:
#index index.html index.htm index.nginx-debian.html;

将注释去掉的原始的欢迎页面可以是自己的网站首页。

3.2 新建虚拟主机

为了支持多个网站,需要在 Nginx 中创建一个新的虚拟主机。可以按照以下步骤进行:

  1. /etc/nginx/sites-available/ 目录下新建一个 .conf 文件,例如:
sudo vim /etc/nginx/sites-available/example.com.conf
  1. 编辑 .conf 文件,添加以下内容:
server {
    listen 80;
    server_name example.com www.example.com;
    access_log /var/log/nginx/example.com.access.log;

    location / {
        root /var/www/example.com;
        index index.html;
    }
}

其中,example.com 为自己的域名或者 IP。

  1. /etc/nginx/sites-enabled/ 目录下创建一个软链接:
sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/
  1. 重启 Nginx 服务使之生效:
sudo systemctl restart nginx

3.3 配置 HTTPS

要配置 HTTPS,需要先安装证书。可以使用 Let's Encrypt 免费证书,也可以使用其他第三方提供的证书。

下面以使用 Let's Encrypt 证书为例:

  1. 安装 Certbot:
sudo apt-get install certbot python-certbot-nginx
  1. 获取证书:
sudo certbot --nginx -d example.com -d www.example.com

其中,example.com 为自己的域名或者 IP。该命令会自动配置 HTTPS,并且会自动续期证书。

四、示例应用

4.1 反向代理

假设有两个服务,分别运行在 http://localhost:8080http://localhost:8081 上。现在想要使用 Nginx 将这两个服务分别映射到 http://localhost/service1http://localhost/service2

可以按照以下步骤进行:

  1. 修改 Nginx 配置文件:
sudo vim /etc/nginx/sites-available/example.com.conf
  1. 添加以下内容:
location /service1 {
    proxy_pass http://localhost:8080;
}

location /service2 {
    proxy_pass http://localhost:8081;
}
  1. 重启 Nginx 服务使之生效:
sudo systemctl restart nginx

现在就可以通过 http://localhost/service1http://localhost/service2 访问这两个服务了。

4.2 负载均衡

假设有两台服务器,分别运行着 http://server1http://server2 上。现在想要使用 Nginx 来实现负载均衡,将所有请求分发到这两台服务器上。

可以按照以下步骤进行:

  1. 修改 Nginx 配置文件:
sudo vim /etc/nginx/sites-available/example.com.conf
  1. 添加以下内容:
upstream backend {
    server server1;
    server server2;
}

server {
    ...

    location /backend {
        proxy_pass http://backend;
    }
}
  1. 重启 Nginx 服务使之生效:
sudo systemctl restart nginx

现在就可以通过 http://example.com/backend 访问这两台服务器上运行的服务了。请求会被自动分配到这两台服务器上,实现负载均衡。

相关文章