如何在Centos7下安装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
- 创建nginx的解压之后文件(创建安装nginx文件)
mkdir nginx
- 把下载后的nginx-1.21.2.tar.gz安装包移动到创建的nginx文件夹中
mv 压缩包名 文件名
mv nginx-1.21.2.tar.gz nginx
直接解压
tar -xzvf nginx-1.21.2.tar.gz
解压后 进入 nginx-1.21.2文件夹
输入以下命令进行编译:
./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
make
make install
nginx安装完成后,就得去运行它了
cd /usr/local/nginx/sbin
运行时,出现问题:“nginx: [emerg] mkdir() “/var/temp/nginx/client” failed (2: No such file or directory)”
解决方法:sudo mkdir -p /var/temp/nginx
启动完之后检查nginx是否已经正常启动
ps -aux |grep nginx
如果已经启动使用下面命令干掉即可
pkill -9 nginx
测试nginx访问
在地址栏输入:http://虚拟机ip/
将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掉):
出现问题:“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
Nginx的安装和开机自动启动就搞定了