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

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/14005.html

分享:
扫描分享到社交APP
上一篇
下一篇