一、Nginx简介
Nginx是一款由俄罗斯程序设计师Igor Sysoev开发的高性能HTTP服务器和反向代理服务器,它具有轻量级、高并发、低内存消耗等特点,被广泛应用于Web服务器、负载均衡器以及API网关等场景。
二、安装步骤
1. 更新系统包索引
在安装任何软件之前,建议先更新系统的包索引,以确保获取到最新的软件包信息,对于基于Debian的系统(如Ubuntu),可以使用以下命令:
sudo apt update
对于基于Red Hat的系统(如CentOS),可以使用:
sudo yum check-update
2. 安装Nginx
对于Debian/Ubuntu系统:
Nginx已经包含在默认的包仓库中,因此可以直接使用包管理器安装:
sudo apt install nginx
对于Red Hat/CentOS系统:
需要先添加Nginx的官方仓库,然后再进行安装:
sudo yum install epel-release -y sudo yum install nginx -y
3. 启动Nginx服务
安装完成后,可以使用以下命令启动Nginx服务:
sudo systemctl start nginx
为了确保Nginx服务在系统启动时自动运行,可以执行:
sudo systemctl enable nginx
4. 验证安装
在浏览器中访问服务器的IP地址或域名,如果看到Nginx的欢迎页面,则说明安装成功。
三、基本配置
1. Nginx配置文件结构
全局块:配置影响nginx全局的指令,一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。
events块:配置影响nginx服务器或与连接处理相关的配置参数,有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否开启高效事件处理模型等。
http块:可以嵌套多个server,配置一系列HTTP特定功能,如配置发送文件类型、日志格式操作、是否使用sendfile传输文件、连接超时时间、单连接请求数等。
server块:配置虚拟主机的相关参数,一个http中可以有多个server。
location块:配置请求的路由及各种页面处理方式的配置。
2. 基本配置示例
修改nginx.conf
文件,进行基本配置:
worker_processes auto; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name your_domain.com; root /usr/share/nginx/html; index index.html index.htm; location / { try_files $uri $uri/ =404; } } }
这个配置定义了一个监听80端口的虚拟主机,当用户访问该服务器时,将返回/usr/share/nginx/html
目录下的index.html
文件,如果文件不存在,则返回404错误。
四、其他常用配置
1. SSL配置
为了使网站支持HTTPS,可以在Nginx中配置SSL证书,需要在服务器上生成或获取SSL证书和私钥,在nginx.conf
中添加SSL配置:
server { listen 443 ssl; server_name your_domain.com; ssl_certificate /path/to/your_certificate.crt; ssl_certificate_key /path/to/your_private.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5; location / { root /usr/share/nginx/html; index index.html index.htm; } }
2. 负载均衡配置
Nginx还可以用作负载均衡器,将请求分发到多台后端服务器,以下是一个简单的负载均衡配置示例:
upstream backend { server backend1.example.com; server backend2.example.com; } server { listen 80; server_name loadbalancer.example.com; location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
这个配置定义了一个名为backend
的上游服务器组,并将来自loadbalancer.example.com
的请求分发到backend1.example.com
和backend2.example.com
两台后端服务器。
五、归纳
通过上述步骤,我们可以成功安装并配置一个基本的Nginx服务器,根据实际需求,还可以进一步优化和调整配置以实现更多功能,如静态文件缓存、防盗链、跨域资源共享等,Nginx的灵活性和高性能使其成为Web开发和运维中不可或缺的工具之一。