centos7 Nginx安装&开机自启动

nginx详细安装教程

    • Nginx简介(https://zh.wikipedia.org/zh-cn/Nginx)
    • 1.环境准备
      • 1.1必备环境安装
      • 1.2安装环境
        • 1.2.1.安装gcc环境
        • 1.2.2.PERE
        • 1.2.3.zlib
        • 1.2.4.openssl
    • 2. 安装nginx
      • 2.1 下载和解压
      • 2.2 编译
        • 2.2.1 设定配置
        • 2.2.2 编译
        • 2.2.2 安装
    • 3. 启动nginx
    • 4. 配置环境变量
    • 5. 加入system开机自启动

Nginx简介(https://zh.wikipedia.org/zh-cn/Nginx)

Nginx(发音同“engine X”)是异步框架的网页服务器,也可以用作反向代理、负载平衡器和HTTP缓存。该软件由俄罗斯程序员[伊戈尔·赛索耶夫]开发并于2004年首次公开发布。2011年成立同名公司以提供支持服务。2019年3月11日,Nginx公司被F5网络公司以6.7亿美元收购。
Nginx是免费的开源软件,根据类BSD许可证的条款发布。一大部分Web服务器使用Nginx,通常作为负载均衡器。
可大量并行处理
Nginx在官方测试的结果中,能够支持五万个并行连接,而在实际的运作中,可以支持二万至四万个并行连接。
与Apache相比
Nginx的编写有一个明确目标就是超越Apache Web服务器的性能。Nginx提供开箱即用的静态文件,使用的内存比Apache少得多,每秒可以处理大约四倍于Apache的请求。 在低并发下Nginx的性能与Apache相当(有时候还低于),但是在高并发下Nginx能保持低资源低消耗高性能。Nginx的优点还包括:高度模块化的设计,模块编写简单,以及配置文件简洁。
这种性能提升的代价是降低了灵活性,例如能够以每个文件为基础覆盖系统范围的访问设置(Apache使用.htaccess文件来完成这个工作,而Nginx并没有内置这样的功能)。以前,向Nginx添加第三方模块需要使用静态链接的模块从源代码重新编译应用程序。在版本 1.9.11 中部分地克服了这一点,增加了动态模块加载。但是,模块仍然必须与Nginx同时编译,而不是所有的模块都与这个系统兼容——有些需要更老的静态链接过程。
相比起在Linux下的Nginx,在Windows Server下的Nginx的稳定性较差,而Apache对两者都有较好的支持。

1.环境准备

  • centos7 mini
  • yum
  • nginx
  • 离线源/互联网

1.1必备环境安装

yum -y --noplugins install wget zip
yum -y --noplugins install unzip
yum -y --noplugins install gcc
yum -y --noplugins install make

1.2安装环境

1.2.1.安装gcc环境

yum install gcc-c++

1.2.2.PERE

PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,pcre-devel是使用pcre开发的一个二次开发库。

yum install -y pcre pcre-devel

1.2.3.zlib

zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库。
yum install -y zlib zlib-devel

1.2.4.openssl

OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。

yum install -y openssl openssl-devel

2. 安装nginx

2.1 下载和解压

链接:https://pan.baidu.com/s/1_kPDQTV3lXCKYdus1UI02A?pwd=uz65
提取码:uz65
也可以去官网下载 https://nginx.org/en/
选择stable版本,nginx-1.22.1
cd /usr/local
上传 nginx-1.22.1.tar.gz
解压
tar -zxvf nginx-1.22.1.tar.gz

2.2 编译

2.2.1 设定配置

进入目录查看配置选项含义

`cd nginx-1.22.1`
`./configure --help`

这里选择如下配置:

./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/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 \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-file-aio \
--with-http_realip_module

创建临时目录

mkdir -p /var/temp/nginx

2.2.2 编译

在nginx-1.22.1目录下,执行make

make

2.2.2 安装

在nginx-1.22.1目录下,执行make install

make install

进入安装目录查看:

ll /usr/local/nginx

其中html是里面首页html文件。conf里面是配置文件。sbin里面只执行文件。

3. 启动nginx

进入sbin,执行命令:./nginx

`cd /usr/local/nginx/sbin`
`./nginx`

查看nginx是否启动

ps -aux | grep nginx

4. 配置环境变量

编辑/etc/profile:

vim /etc/profile

在原有的PATH后面添加nginx的路径(:/usr/local/nginx/sbin)

export PATH=$PATH:/usr/local/nginx/sbin

生效文件

source /etc/profile


修改PID位置
vim /usr/local/nginx/conf/nginx.conf
i进入编辑模式取消注释#修改如下:

pid logs/nginx.pid;

退出编辑模式ESC,保存配置文件的修改:wq

创建PID目录和文件

mkdir -p /usr/local/nginx/logs
touch /usr/local/nginx/logs/nginx.pid

5. 加入system开机自启动

执行命令:

vim /usr/lib/systemd/system/nginx.service

输入内容:
[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
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 stop

[Install]
WantedBy=multi-user.target

退出编辑模式ESC,输入:wq 保存开机自启动脚本。

systemctl enable nginx
systemctl daemon-reload
systemctl start nginx

重启测试

reboot 重新链接后使用命令ps -ef | grep nginx 查看是否启动进程

打开地址

http://[IP]:80 如果打开不了,请关闭防火墙试试:

  • systemctl status firewalld.service 回车键。
  • 查看得到[active(running)],此时说明防火墙已经被打开了。
  • 输入systemctl stop firewalld.service命令,关闭防火墙。
  • 输入systemctl status firewalld.service,出现disavtive(dead),说明防火墙已经关闭。
  • 命令systemctl disable firewalld.service,永久关闭防火墙。

参考
1.Nginx-维基百科
2.nginx安装

你可能感兴趣的:(开发环境安装,nginx,服务器,运维)