nginx教程

Nginx是一个高性能的Web服务器和反向代理服务器,它也可以作为负载均衡器和HTTP缓存。以下是一个详细的Nginx教程,包括安装、配置和使用。

1. 安装Nginx

1.1 准备工作

  1. 打开虚拟机并使用远程连接工具连接到Linux操作系统。

  2. 访问Nginx官网下载软件:http://nginx.org/。

1.2 安装依赖

  1. 安装PCRE
  • 下载pcre压缩文件:wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz

  • 解压压缩文件:tar -xvf pcre-8.37.tar.gz

  • 配置并安装:./configure && make && make install

  • 验证安装:pcre-config --version

  1. 安装OpenSSL、Zlib、GCC
  • 使用yum安装:
    yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
    ```

3. **安装Nginx** <b class="card40_249__sup_c012" data-sup="sup">3</b>:

- 下载Nginx源码包:`wget http://nginx.org/download/nginx-1.18.0.tar.gz`

- 解压源码包:`tar -xvf nginx-1.18.0.tar.gz`<b class="card40_249__sup_c012" data-sup="sup">1</b>

- 配置并安装:

```bash
    cd nginx-1.18.0
    ./configure
    make
    sudo make install
    ```

- 启动服务:`/usr/local/nginx/sbin/nginx`<b class="card40_249__sup_c012" data-sup="sup">2</b>

#### 1.3 防火墙设置

- 查看开放端口:`firewall-cmd --list-all`<b class="card40_249__sup_c012" data-sup="sup">3</b>

- 设置开放端口号:`firewall-cmd --zone=public --add-port=80/tcp --permanent`<b class="card40_249__sup_c012" data-sup="sup">1</b>

- 重载防火墙配置:`firewall-cmd --reload`<b class="card40_249__sup_c012" data-sup="sup">3</b>

### 2. Nginx常用命令<b class="card40_249__sup_c012" data-sup="sup">2</b>

- 停止Nginx:`nginx -s stop`

- 平稳关闭Nginx:`nginx -s quit`

- 重新加载配置:`nginx -s reload`

- 重新打开日志文件:`nginx -s reopen`<b class="card40_249__sup_c012" data-sup="sup">4</b>

- 指定配置文件:`nginx -c /path/to/nginx.conf`<b class="card40_249__sup_c012" data-sup="sup">1</b>

- 测试配置文件:`nginx -t`

- 显示Nginx版本:`nginx -v`

- 显示详细版本信息:`nginx -V`<b class="card40_249__sup_c012" data-sup="sup">4</b>

### 3. Nginx配置文件<b class="card40_249__sup_c012" data-sup="sup">1</b>

Nginx的主要配置文件是`nginx.conf`,通常位于`/usr/local/nginx/conf/`目录下<b class="card40_249__sup_c012" data-sup="sup">5</b>。以下是一个简单的配置示例:

```nginx
http {
    server {
        listen 80;
        server_name example.com;

        location / {
            root /var/www/html;
            index index.html index.htm;
        }

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
            root /usr/share/nginx/html;
        }
    }
}

4. 反向代理

反向代理是将客户端请求转发到其他服务器的技术。以下是一个简单的反向代理配置示例:

http {
    server {
        listen 80;
        server_name example.com;

        location / {
            proxy_pass http://backend_server;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
}

5. 负载均衡

Nginx可以通过upstream模块实现负载均衡。以下是一个简单的负载均衡配置示例:

http {
    upstream backend {
        server backend1.example.com;
        server backend2.example.com;
        server backend3.example.com;
    }

    server {
        listen 80;
        server_name example.com;

        location / {
            proxy_pass http://backend;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
}

6. 使用OpenResty

OpenResty是一个集成了Lua模块的Nginx服务器。以下是一个安装和使用OpenResty的示例:

6.1

Top