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