Nginx是一个高性能的Web服务器和反向代理服务器,它也可以作为负载均衡器和HTTP缓存。以下是一个详细的Nginx教程,包括安装、配置和使用。
1. 安装Nginx
1.1 准备工作
-
打开虚拟机并使用远程连接工具连接到Linux操作系统。
-
访问Nginx官网下载软件:http://nginx.org/。
1.2 安装依赖
- 安装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
- 安装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的示例: