CentOS 配置 Nginx
安装前准备
1、更新系统:在安装Nginx之前,确保你的CentOS系统是最新的,打开终端并执行以下命令来更新系统包:
sudo yum update y
2、安装EPEL源:CentOS默认的YUM源可能不包含最新版本的Nginx,为了获取最新版本,建议添加EPEL源:
sudo yum install y epelrelease sudo yum update y
3、安装依赖库:Nginx需要几个依赖库才能正常编译和运行,执行以下命令安装这些库:
sudo yum install y gcc pcre pcredevel zlib zlibdevel openssl openssldevel
下载与安装Nginx
1、下载Nginx:访问[Nginx官网](http://nginx.org/en/download.html)下载最新版的Nginx源码包,使用wget命令下载:
wget http://nginx.org/download/nginx1.24.0.tar.gz
2、解压源码包:下载完成后,解压文件:
tar zxvf nginx1.24.0.tar.gz
3、编译并安装Nginx:进入解压后的目录,配置、编译并安装Nginx:
cd nginx1.24.0 ./configure prefix=/usr/local/nginx make sudo make install
4、创建符号链接(可选):为了方便启动Nginx,可以创建一个符号链接:
sudo ln s /usr/local/nginx/sbin/nginx /usr/bin/nginx
配置Nginx
1、配置基本设置:Nginx的主要配置文件位于/usr/local/nginx/conf/nginx.conf
,你可以根据需要进行修改,以下是一些常见的配置示例:
worker_processes auto; events { worker_connections 1024; } http { include mime.types; default_type application/octetstream; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; location / { root /usr/share/nginx/html; index index.html index.htm; } } }
2、配置虚拟主机:你可以通过在/usr/local/nginx/conf/nginx.conf
中添加server
块来配置虚拟主机,配置一个名为example.com
的虚拟主机:
server { listen 80; server_name example.com; location / { root /usr/share/nginx/html; index index.html index.htm; } }
3、配置HTTPS:为了启用HTTPS,你需要生成SSL证书和密钥,并在Nginx配置中引用它们,以下是一个简单的HTTPS配置示例:
server { listen 443 ssl; server_name example.com; ssl_certificate /etc/nginx/ssl/example.com.crt; ssl_certificate_key /etc/nginx/ssl/example.com.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location / { root /usr/share/nginx/html; index index.html index.htm; } }
启动与管理Nginx
1、启动Nginx:使用以下命令启动Nginx:
sudo /usr/local/nginx/sbin/nginx
2、检查Nginx配置是否正确:在启动前,最好检查一下配置文件是否有错误:
sudo nginx t
3、设置开机自启动:为了让Nginx在系统重启时自动启动,可以将其加入系统服务中:
sudo vi /etc/systemd/system/nginx.service
在文件中添加以下内容:
[Unit] Description=The NGINX HTTP and reverse proxy server After=syslog.target network.target remotefs.target nsslookup.target [Service] Type=forking PIDFile=/usr/local/nginx/logs/nginx.pid ExecStartPre=/usr/local/nginx/sbin/nginx t ExecStart=/usr/local/nginx/sbin/nginx ExecReload=/usr/local/nginx/sbin/nginx s reload ExecStop=/bin/kill s QUIT $MAINPID PrivateTmp=true [Install] WantedBy=multiuser.target
然后执行以下命令使更改生效:
sudo systemctl daemonreload sudo systemctl enable nginx sudo systemctl start nginx
4、管理Nginx服务:常用的管理命令包括:
sudo systemctl start nginx # 启动Nginx sudo systemctl stop nginx # 停止Nginx sudo systemctl restart nginx # 重启Nginx sudo systemctl reload nginx # 重新加载配置文件
常见问题及解决
1、端口被占用:如果启动Nginx时提示端口被占用,可以使用以下命令查看哪个进程占用了该端口:
sudo netstat tuln | grep :80
然后终止相应的进程或更换Nginx的监听端口。
2、防火墙设置:如果你的服务器启用了防火墙,需要允许HTTP和HTTPS流量通过,使用firewalld:
sudo firewallcmd permanent addservice=http sudo firewallcmd permanent addservice=https sudo firewallcmd reload
3、日志查看:Nginx的日志文件通常位于/usr/local/nginx/logs/
目录下,可以通过查看这些日志来排查问题:
sudo tail f /usr/local/nginx/logs/error.log sudo tail f /usr/local/nginx/logs/access.log
FAQs
Q1: Nginx无法启动怎么办?
A1: 如果Nginx无法启动,首先检查配置文件是否有语法错误:
sudo nginx t
如果有错误,根据提示修改配置文件后重试,检查端口是否被其他进程占用,以及确保所有必要的依赖库已正确安装。
Q2: 如何更改Nginx的默认网站根目录?
A2: 更改Nginx的默认网站根目录需要修改配置文件中的root
指令,将根目录更改为/var/www
:
server { listen 80; server_name localhost; location / { root /var/www; index index.html index.htm; } }
修改完成后,重新加载Nginx配置:
sudo systemctl reload nginx