Nginx是一款高性能的HTTP和反向代理服务器,在Linux系统中安装配置非常普遍。下面我将详细介绍在不同Linux发行版上安装Nginx的方法及常见问题解决方案。
# 更新软件包列表
sudo apt update
# 安装Nginx
sudo apt install nginx
# 启动Nginx服务
sudo systemctl start nginx
# 设置开机自启
sudo systemctl enable nginx
# 添加EPEL仓库(CentOS/RHEL 7及以下)
sudo yum install epel-release
# 安装Nginx
sudo yum install nginx
# 启动Nginx服务
sudo systemctl start nginx
# 设置开机自启
sudo systemctl enable nginx
# 安装依赖
sudo apt install build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev
# 下载源码(以1.25.1版本为例)
wget https://nginx.org/download/nginx-1.25.1.tar.gz
tar -zxvf nginx-1.25.1.tar.gz
cd nginx-1.25.1
# 配置编译选项
./configure --prefix=/usr/local/nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module
# 编译并安装
make && sudo make install
# 启动Nginx
/usr/local/nginx/sbin/nginx
sudo systemctl status nginx
sudo nginx -t
sudo systemctl reload nginx
# 或
sudo nginx -s reload
错误现象:Nginx启动失败,报错"Address already in use"
解决方案:
# 查找占用80端口的进程
sudo netstat -tulnp | grep :80
# 停止冲突服务或修改Nginx监听端口
sudo vi /etc/nginx/nginx.conf
# 修改listen指令为其他端口,如8080
错误现象:403 Forbidden或Permission denied
解决方案:
# 检查Nginx用户配置
sudo vi /etc/nginx/nginx.conf
# 确保user指令设置为有权限的用户,如:
user www-data;
# 检查网站目录权限
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html
错误现象:权限正确但仍无法访问
解决方案:
# 临时禁用SELinux(不推荐)
sudo setenforce 0
# 或正确设置SELinux上下文
sudo chcon -R -t httpd_sys_content_t /var/www/html
错误现象:配置中使用未编译的模块时报错
解决方案:
# 查看已编译模块
nginx -V
# 重新编译添加所需模块
./configure --with-http_ssl_module # 添加SSL模块示例
make && sudo make install
工作进程配置:
worker_processes auto; # 自动设置为CPU核心数
连接数优化:
events {
worker_connections 1024;
multi_accept on;
}
启用Gzip压缩:
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml;
启用缓存:
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m;
隐藏Nginx版本信息:
server_tokens off;
限制HTTP方法:
limit_except GET POST { deny all; }
防止点击劫持:
add_header X-Frame-Options "SAMEORIGIN";
启用HSTS:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
通过以上步骤和配置,您可以在Linux系统上成功安装并优化Nginx服务器。根据实际需求调整配置参数,可以进一步提升服务器性能和安全性。