Nginx是一款高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。它具有占用内存少、并发能力强、稳定性高等特点,被广泛用于负载均衡、反向代理和静态资源服务等场景。
对于基于RPM的系统(CentOS/RHEL):
yum install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
对于基于Debian的系统(Ubuntu/Debian):
apt-get install build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev
CentOS/RHEL:
# 添加Nginx官方仓库
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
# 安装Nginx
sudo yum install nginx
# 启动Nginx
sudo systemctl start nginx
Ubuntu/Debian:
# 添加Nginx官方仓库
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:nginx/stable
sudo apt-get update
# 安装Nginx
sudo apt-get install nginx
# 启动Nginx
sudo systemctl start nginx
# 下载最新稳定版
wget http://nginx.org/download/nginx-1.20.1.tar.gz
tar zxvf nginx-1.20.1.tar.gz
cd nginx-1.20.1
# 配置编译选项
./configure \
--prefix=/usr/local/nginx \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-pcre
# 编译并安装
make && make install
# 启动Nginx
/usr/local/nginx/sbin/nginx
# 检查配置文件语法
nginx -t
# 重新加载配置(不重启服务)
nginx -s reload
Systemd系统:
# 创建systemd服务文件
cat > /etc/systemd/system/nginx.service <<EOF
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t
ExecStart=/usr/sbin/nginx
ExecReload=/usr/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT \$MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
# 启用并启动服务
systemctl enable nginx
systemctl start nginx
如果80端口被占用(如Apache):
# 查找占用80端口的进程
netstat -tulnp | grep :80
# 停止占用进程或修改Nginx监听端口
vi /etc/nginx/nginx.conf
# 修改listen指令
listen 8080;
可能原因: - 目录权限不足 - 缺少index文件
解决方案:
# 修改目录权限
chown -R nginx:nginx /usr/share/nginx/html
chmod -R 755 /usr/share/nginx/html
# 确保存在index文件
touch /usr/share/nginx/html/index.html
修改/etc/nginx/nginx.conf
中的工作进程设置:
worker_processes auto; # 自动设置为CPU核心数
events {
worker_connections 1024; # 每个工作进程的最大连接数
multi_accept on; # 同时接受多个新连接
}
server_tokens off;
location / {
limit_except GET POST {
deny all;
}
}
# 安装certbot
sudo apt-get install certbot python3-certbot-nginx
# 获取证书
sudo certbot --nginx -d example.com -d www.example.com
# 设置自动续期
sudo certbot renew --dry-run
# CentOS/RHEL
sudo yum remove nginx
# Ubuntu/Debian
sudo apt-get purge nginx nginx-common
# 停止Nginx
/usr/local/nginx/sbin/nginx -s stop
# 删除安装目录
rm -rf /usr/local/nginx
通过以上步骤,您应该能够成功安装并配置Nginx服务器。根据实际需求,您可能需要进一步调整配置参数以获得最佳性能。