CentOS 7 安装Nginx
Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。
其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
CentOS 7 安装Nginx
1.安装准备
首先由于nginx的一些模块依赖一些lib库,所以在安装nginx之前,必须先安装这些lib库,这些依赖库主要有g++、gcc、openssl-devel、pcre-devel和zlib-devel 所以执行如下命令安装
# yum install gcc
# yum install g++
# yum install pcre pcre-devel
# yum install zlib zlib-devel
# yum install openssl openssl--devel
2.安装Nginx
安装之前,最好检查一下是否已经安装有nginx
# find -name nginx
如果系统已经安装了nginx,那么就先卸载
# yum remove nginx
3.新建一个用户
需要新建一个用户,禁止使用root用户进行操作
# useradd -d ucenter
# passwd ucenter
# cd /ucenter
# mkdir soft
# chown ucenter:ucenter /ucenter/ -R
4.安装在线下载包
在线安装wget包
# yum -y install wget
5.在soft目录下直接下载和安装nginx
$ cd /ucenter/soft
$ mkdir nginx
$ wget http://nginx.org/download/nginx-1.14.1.tar.gz
#解压nginx压缩包
$ tar -vxf nginx-1.14.1.tar.gz
#解压后会产生一个nginx-1.14.1的目录,进入这个目录
$ cd nginx-1.14.1
6.切换到root目录,然后指定默认的安装目录
# ./configure --prefix=/ucenter/soft/nginx --user=ucenter --group=ucenter
7.再次切换用户到ucenter,然后进入nginx-1.14.1目录下进行编译安装
$ make
$ make install
8.安装完毕后,启动nginx
$ cd /ucenter/soft/nginx
$ cd sbin
$ ./nginx
#centos中启动,重新加载,停止命令如下
./nginx -------开启nginx服务
./nginx -s reload ----------重新加载nginx服务
./nginx -s stop ----------关闭nginx服务
9.启动后记得到浏览器中访问,如果访问不了,记得在防火墙开启的情况下打开80端口就可以了,打开80端口的方法如下:
# firewall-cmd --zone=public --add-port=80/tcp --permanent
# /sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
# /etc/rc.d/init.d/iptables save
# /etc/init.d/iptables status
要到问题需要注意:
centos7 nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
如果切换到普通用户下启动,有可能会报这个错误,怎么解决了?
执行如下命令:
$ su root
$ passwd --输入密码
# cd /ucenter/soft/nginx/sbin/
# ll
# chown root nginx
# chmod u+s nginx
# ll
# su ucenter
$ ./nginx
$ ps -ef|grep nginx
10.如何结束掉nginx进程
#一般情况下直接可以直接使用nginx的自带命令
$ ./nginx -s stop
#如果命令不起作用则可以使用
$ ps -ef | grep nginx
root 13064 1 0 16:46 ? 00:00:00 nginx: master process ./nginx
ucenter 13065 13064 0 16:46 ? 00:00:00 nginx: worker process
ucenter 13069 12602 0 16:46 pts/2 00:00:00 grep --color=auto nginx
#然后分别杀死主进程和分进程
$ kill -9 13064
$ kill -9 13065
#或者可以通过如下命令直接停止
$ pkill -9 nginx
11.设置nginx开机启动
①在系统服务目录里创建nginx.service文件
cat>>/usr/lib/systemd/system/nginx.service
②写入内容如下:
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
Description:描述服务 After:描述服务类别 [Service]服务运行参数的设置 Type=forking是后台运行的形式 ExecStart为服务的具体运行命令 ExecReload为重启命令 ExecStop为停止命令 PrivateTmp=True表示给服务分配独立的临时空间 注意:[Service]的启动、重启、停止命令全部要求使用绝对路径 [Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3
③设置开机自启动
systemctl enable nginx.service
④查看nginx状态
systemctl status nginx.service
很奇怪,明明启动成功了,为什么显示Active: inactive (dead)?
⑤杀死nginx重启nginx
pkill -9 nginx
ps aux | grep nginx
systemctl start nginx
再次查看状态,变成了active,搞定。
⑥重启服务器
reboot
⑦再次连接后,查看服务状态
systemctl status nginx.servic
======================================END=============================================
微信公众号: