如何在Centos7下安装Nginx并配置开机自动启动

如何在Centos7下安装Nginx并配置开机自动启动

  • 前言
    • Nginx是什么?
    • Nginx可以做什么?
  • Centos7安装Nginx
    • 安装nginx运行环境
    • 下载及解压nginx
  • 将nginx作为服务启动

前言

Nginx是什么?

Nginx是一款开源的、跨平台的高性能web服务器,它有着高性能,稳定性高,配置简单,模块结构化,资源消耗低的优点。同时支持反向代理、负载均衡、缓存的功能。其采用多进程+epoll(IO多路复用)模型,也对互联网高并发连接业务有着很好的支持。它也是一个IMAP/POP3/SMTP服务。

Nginx可以做什么?

大多是围绕这web请求的,列举一些:

  • 负载均衡,保证服务稳定和快速这个常见,不多言
  • 代理服务,可以通过它访问别的资源,甚至缓存起来这个可以缓存第三方网站内容作为自己的内容比如 http://a.com/b.jpg可以设定为 http://your.com/a.com/b.jpg rewrite并且访问http://a.com,并且缓存
  • cdn角色,缓存并且自动更新这个可以去掉请求的部分内容,也可以去掉响应的部分头信息常用可以做一个中间的server,去掉set-cookie内容,这样就可以缓存起来了,默认是缓存不了,修改后就不用修改后端服务器了
  • 和memcache结合,直接缓存网页内容,快速响应
  • 自动裁剪图片,做缩略图
  • 对客户端限速处理
  • 第三方组件更多特色玩法了

Centos7安装Nginx

安装nginx运行环境

yum -y install gcc
yum install -y gcc-c++ 
yum install -y pcre pcre-devel 
yum install -y zlib zlib-devel 
yum install -y openssl openssl-devel

下载及解压nginx

  • 下载nginx-1.21.2.tar.gz安装包
wget http://nginx.org/download/nginx-1.21.2.tar.gz

如何在Centos7下安装Nginx并配置开机自动启动_第1张图片

  • 创建nginx的解压之后文件(创建安装nginx文件)
mkdir nginx

如何在Centos7下安装Nginx并配置开机自动启动_第2张图片

  • 把下载后的nginx-1.21.2.tar.gz安装包移动到创建的nginx文件夹中
mv       压缩包名	       文件名
mv  nginx-1.21.2.tar.gz    nginx

如何在Centos7下安装Nginx并配置开机自动启动_第3张图片

直接解压

tar -xzvf  nginx-1.21.2.tar.gz

如何在Centos7下安装Nginx并配置开机自动启动_第4张图片

解压后 进入 nginx-1.21.2文件夹

如何在Centos7下安装Nginx并配置开机自动启动_第5张图片

输入以下命令进行编译:

./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi

如何在Centos7下安装Nginx并配置开机自动启动_第6张图片

make
make install

如何在Centos7下安装Nginx并配置开机自动启动_第7张图片

nginx安装完成后,就得去运行它了

cd /usr/local/nginx/sbin

如何在Centos7下安装Nginx并配置开机自动启动_第8张图片

运行时,出现问题:“nginx: [emerg] mkdir() “/var/temp/nginx/client” failed (2: No such file or directory)”

如何在Centos7下安装Nginx并配置开机自动启动_第9张图片

解决方法:sudo mkdir -p /var/temp/nginx

如何在Centos7下安装Nginx并配置开机自动启动_第10张图片

启动完之后检查nginx是否已经正常启动

ps -aux |grep nginx

如何在Centos7下安装Nginx并配置开机自动启动_第11张图片
如果已经启动使用下面命令干掉即可

pkill -9 nginx

测试nginx访问

在地址栏输入:http://虚拟机ip/
如何在Centos7下安装Nginx并配置开机自动启动_第12张图片
如何在Centos7下安装Nginx并配置开机自动启动_第13张图片

将nginx作为服务启动

在生产环境中,一般都希望将nginx作为一项服务,能在系统重启后自己运行起来。
那就需要在/usr/lib/systemd/system/目录下,创建nginx.service文件,并输入以下内容(并保存退出):

cd /usr/lib/systemd/system/
vi nginx.service
[Unit]
Description=nginx
After=network.target
  
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
  
[Install]
WantedBy=multi-user.target

启动nginx服务(此时需要先用ps查看nginx进程是否已存在,若已存在,则服务会启动失败。启动服务前必须先将nginx进程kill掉):
如何在Centos7下安装Nginx并配置开机自动启动_第14张图片

出现问题:“Job for nginx.service failed because the control process exited
with error code. See “systemctl status nginx.service” and “journalctl
-xe” for details.” 这是因为nginx已经启动了

将nginx进程kill掉就行了

pkill -9 nginx

设置开机自启动:

systemctl enable nginx

查看服务状态:

systemctl status nginx

如何在Centos7下安装Nginx并配置开机自动启动_第15张图片
Nginx的安装和开机自动启动就搞定了

你可能感兴趣的:(nginx)