Nginx是一款高性能的HTTP和反向代理服务器,以及电子邮件(IMAP/POP3)代理服务器,广泛用于网站服务器、反向代理服务器、负载均衡器等场景。学会Nginx的安装与配置,可以帮助你轻松搭建高效的服务器。本文将详细介绍Nginx的安装、配置以及一些常用功能的使用。
一、Nginx安装
1. 安装前的准备工作
在安装Nginx之前,请确保你的操作系统已经安装了以下依赖项:
- GCC编译器
- CMake
- Make
- 自动化工具(如Autoconf、Automake等)
2. 安装方式
以下是几种常见的Nginx安装方式:
2.1 使用包管理器
以CentOS为例,可以使用以下命令安装:
sudo yum install nginx
2.2 使用源码编译
- 下载Nginx源码:
wget http://nginx.org/download/nginx-1.21.0.tar.gz
- 解压源码:
tar -zxvf nginx-1.21.0.tar.gz
- 进入源码目录:
cd nginx-1.21.0
- 使用CMake配置:
./configure
- 编译安装:
make
sudo make install
二、Nginx配置
Nginx的配置文件位于/etc/nginx/nginx.conf,以下是配置文件的基本结构:
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
# error page
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
}
1. 常用配置项
user: 设置运行Nginx的用户和用户组。worker_processes: 设置Nginx工作进程的数量,建议设置为CPU核心数的整数倍。error_log: 设置错误日志的路径和日志级别。pid: 设置Nginx进程的PID文件路径。events: 设置Nginx事件驱动模型的相关配置。http: 设置HTTP服务器的相关配置。server: 设置虚拟主机服务器。
2. 虚拟主机配置
在http块中,可以配置多个server块,用于实现虚拟主机功能。以下是虚拟主机配置的基本结构:
server {
listen 80;
server_name www.example.com;
location / {
root /var/www/html/www.example.com;
index index.html index.htm;
}
}
其中,listen指定监听的端口号和IP地址,server_name指定域名。
三、Nginx常用功能
1. 负载均衡
Nginx支持基于轮询、IP哈希、最少连接数等算法的负载均衡。以下是一个简单的轮询负载均衡示例:
http {
upstream myapp {
server backend1.example.com;
server backend2.example.com;
server backend3.example.com;
}
server {
listen 80;
server_name www.example.com;
location / {
proxy_pass http://myapp;
}
}
}
2. SSL加密
Nginx支持SSL加密,以下是一个简单的SSL配置示例:
server {
listen 443 ssl;
server_name www.example.com;
ssl_certificate /etc/nginx/ssl/cert.pem;
ssl_certificate_key /etc/nginx/ssl/cert.key;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384';
ssl_prefer_server_ciphers on;
# ... 其他配置 ...
}
3. 静态文件缓存
Nginx可以缓存静态文件,提高访问速度。以下是一个简单的静态文件缓存配置示例:
http {
# ... 其他配置 ...
server {
listen 80;
server_name www.example.com;
location / {
root /var/www/html/www.example.com;
index index.html index.htm;
expires 30d;
add_header Cache-Control "public";
}
}
}
四、总结
学会Nginx的安装与配置,可以帮助你轻松搭建高效的服务器。本文介绍了Nginx的安装、配置以及一些常用功能的使用,希望对你有所帮助。在实际应用中,你可以根据自己的需求进行更深入的学习和探索。
