HCRM博客

如何在CentOS上配置Nginx服务器?

CentOS 配置 Nginx

安装前准备

1、更新系统:在安装Nginx之前,确保你的CentOS系统是最新的,打开终端并执行以下命令来更新系统包:

如何在CentOS上配置Nginx服务器?-图1
(图片来源网络,侵权删除)
   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,可以创建一个符号链接:

如何在CentOS上配置Nginx服务器?-图2
(图片来源网络,侵权删除)
   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
分享:
扫描分享到社交APP
上一篇
下一篇