在 CentOS 上安装 Nginx 是一个相对简单且常见的操作,Nginx 是一个高性能的 HTTP 和反向代理服务器,以下是详细的步骤和相关注意事项:
一、准备工作
1、确保有sudo权限:你需要以拥有sudo权限的用户身份登录系统。
2、检查端口占用情况:确保系统中没有其他服务(如Apache)占用80(HTTP)和443(HTTPS)端口。
二、安装步骤
方法一:通过YUM仓库安装
1、安装EPEL仓库:如果你的CentOS版本没有默认包含Nginx的软件包,可以通过EPEL仓库来安装。
sudo yum install epelrelease
2、安装Nginx:
sudo yum install nginx
3、启动Nginx并设置开机自启:
sudo systemctl start nginx sudo systemctl enable nginx
4、验证Nginx是否成功启动:
sudo systemctl status nginx
你应该能看到类似于以下的输出,表示Nginx正在运行:
● nginx.service The nginx HTTP and reverse proxy server Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled) Active: active (running) since Mon 20180312 16:12:48 UTC; 2s ago Process: 1677 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS) Process: 1675 ExecStartPre=/usr/sbin/nginx t (code=exited, status=0/SUCCESS) Main PID: 1680 (nginx) CGroup: /system.slice/nginx.service ├─1680 nginx: master process /usr/sbin/nginx └─1681 nginx: worker process
5、打开防火墙端口(如果已启用防火墙):
sudo firewallcmd permanent zone=public addservice=http sudo firewallcmd permanent zone=public addservice=https sudo firewallcmd reload
6、验证Nginx是否成功启动:在浏览器中输入服务器的IP地址或域名,你将看到Nginx的默认欢迎页面。
方法二:通过编译源码安装(适用于需要特定配置的情况)
1、安装依赖包:
sudo yum install gcc pcre pcredevel zlib zlibdevel openssl openssldevel y
2、下载Nginx源码:
wget http://nginx.org/download/nginx1.XX.X.tar.gz tar zxvf nginx1.XX.X.tar.gz cd nginx1.XX.X
3、配置、编译和安装Nginx:
./configure prefix=/usr/local/nginx make sudo make install
4、启动Nginx:
sudo /usr/local/nginx/sbin/nginx
5、设置Nginx为系统服务(可选):可以创建systemd服务文件,使Nginx能够通过systemctl管理。
三、Nginx配置文件和最佳实践
1、主配置文件路径:/etc/nginx/nginx.conf
。
2、站点配置文件路径:/etc/nginx/conf.d/
,建议为每个域名创建一个单独的配置文件,文件名通常为domain.com.conf
。
3、日志文件路径:默认情况下,访问日志和错误日志位于/var/log/nginx/
目录下。
四、常见问题及解决方法
1、端口被占用:
如果80或443端口被其他服务占用,可以先停止占用端口的服务,或者修改Nginx的配置文件,使用不同的端口。
查看端口占用情况:
netstat tuln | grep :80
2、防火墙设置问题:
如果无法访问Nginx,请确认防火墙已正确配置,允许HTTP和HTTPS流量通过。
检查防火墙状态:
sudo firewallcmd listall
3、SELinux问题:
如果遇到与SELinux相关的权限问题,可以尝试临时关闭SELinux或为Nginx添加相应的策略。
临时关闭SELinux:
sudo setenforce 0
永久关闭SELinux(不推荐):
sudo vi /etc/selinux/config # 将 SELINUX=enforcing 改为 SELINUX=disabled
五、FAQs问答环节
Q1:如何在CentOS上卸载Nginx?
A1:可以通过以下命令卸载Nginx:
sudo yum remove nginx y
如果是通过源码编译安装的,则需要手动删除安装目录及相关文件。
Q2:如何更改Nginx监听的端口数?
A2:编辑Nginx的主配置文件/etc/nginx/nginx.conf
,找到http
区块中的listen
指令,将其修改为所需的端口号,
server { listen 8080; server_name your_domain_or_ip; ... }
修改完成后,重新加载Nginx配置:
sudo systemctl reload nginx