Nginx是一款高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。它具有占用内存少、并发能力强等特点,在互联网公司中被广泛使用。
Ubuntu/Debian系统:
sudo apt update
sudo apt install nginx
CentOS/RHEL系统:
sudo yum install epel-release
sudo yum install nginx
# 安装依赖
sudo apt install build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev
# 下载源码
wget http://nginx.org/download/nginx-1.21.6.tar.gz
tar -zxvf nginx-1.21.6.tar.gz
cd nginx-1.21.6
# 配置编译选项
./configure --prefix=/usr/local/nginx \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-http_realip_module
# 编译安装
make && sudo make install
Nginx的主要配置文件通常位于:
- /etc/nginx/nginx.conf
(包管理器安装)
- /usr/local/nginx/conf/nginx.conf
(源码安装)
配置文件主要包含以下部分:
# 全局块
user www-data;
worker_processes auto;
pid /run/nginx.pid;
# events块
events {
worker_connections 1024;
}
# http块
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
# server块
server {
listen 80;
server_name example.com;
# location块
location / {
root /var/www/html;
index index.html;
}
}
}
静态网站配置:
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
PHP支持配置:
server {
listen 80;
server_name example.com;
root /var/www/example.com;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
}
# 启动Nginx
sudo systemctl start nginx
# 停止Nginx
sudo systemctl stop nginx
# 重启Nginx
sudo systemctl restart nginx
# 重新加载配置(不中断服务)
sudo systemctl reload nginx
# 查看Nginx状态
sudo systemctl status nginx
# 设置开机启动
sudo systemctl enable nginx
# 调整worker进程数
worker_processes auto;
# 每个worker的最大连接数
events {
worker_connections 4096;
multi_accept on;
}
http {
# 开启高效文件传输模式
sendfile on;
# 减少网络报文段数量
tcp_nopush on;
# 禁用Nagle算法
tcp_nodelay on;
# 保持连接超时时间
keepalive_timeout 65;
# 客户端请求头缓冲区大小
client_header_buffer_size 4k;
# 开启Gzip压缩
gzip on;
gzip_min_length 1k;
gzip_comp_level 2;
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript;
}
chmod -R 755 /var/www
chown -R www-data:www-data /var/www
systemctl status php7.4-fpm
top
或htop
查看系统资源使用情况/var/log/nginx/error.log
Nginx日志通常位于/var/log/nginx/
目录下:
- access.log
:访问日志
- error.log
:错误日志
可以使用以下命令分析日志:
# 查看访问量最高的IP
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -n 10
# 查看访问量最高的URL
awk '{print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -n 10
# 查看HTTP状态码统计
awk '{print $9}' /var/log/nginx/access.log | sort | uniq -c | sort -nr
通过以上配置和实例分析,您应该能够在Linux系统上成功安装和配置Nginx服务器,并解决常见的配置问题。