赞
踩
目录
mkdir /usr/nginx
tar -zxvf nginx-1.20.2.tar.gz
- yum -y install gcc pcre-devel zlib-devel openssl-devel libxml2-devel libxslt-devel gd-devel GeoIP-devel jemalloc-devel libatomic_ops-devel perl-devel perl-ExtUtils-Embed
-
- #安装Nginx需要先将官网下载的源码进行编译,依赖gcc环境
-
- #PCRE是一个perl库,包括perl兼容的正则表达式库。Nginx的http模块使用pcre库来解析正则表达式
-
- #zlib库提供很多种压缩解压缩方式,Nginx使用zlib对http包的内容进行gzip
-
- #OpenSSL是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的秘钥和证书封装管理功能及
- SSL协议,并提供丰富的应用程序供测试或其它目的使用。Nginx不仅支持http协议,还支持HTTPS协议
- (即在SSL协议上传输http)。
-
编译Nginx源码文件时,首先需要通过编译配置命令configure进行编译配置。编译配置命令configure的常用编译配置参数如下图所示。
对于上图,有以下三点说明。
- TCMalloc是谷歌开源的一个内存管理分配器,优于Glibc的malloc内存管理分配器。
- upstream是被代理服务器组的Nginx内部标识,通常称为上游服务器。
- 开启pcre JIT支持,可以提升处理正则表达式的速度。
如图所示,具有带“--with”前缀的编译配置参数的模块都不会被默认编译,若要使用该功能模块,需要使用提供的编译配置参数进行编译配置。相反,具有带“--without”前缀的编译配置参数的模块都会被默认编译,如果不想使用某个功能模块,在进行编译配置时添加带有“--without”前缀的参数即可。此处只列出了常用功能的编译配置参数,也可以通过编译配置命令的帮助参数获得更多的编译配置参数。
./configure --help
- cd nginx-1.20.2/
-
- # 编译所有功能模块
- ./configure \
- --with-threads \
- --with-file-aio \
- --with-http_ssl_module \
- --with-http_v2_module \
- --with-http_realip_module \
- --with-http_addition_module \
- --with-http_xslt_module=dynamic \
- --with-http_image_filter_module=dynamic \
- --with-http_geoip_module=dynamic \
- --with-http_sub_module \
- --with-http_dav_module \
- --with-http_flv_module \
- --with-http_mp4_module \
- --with-http_gunzip_module \
- --with-http_gzip_static_module \
- --with-http_auth_request_module \
- --with-http_random_index_module \
- --with-http_secure_link_module \
- --with-http_degradation_module \
- --with-http_slice_module \
- --with-http_stub_status_module \
- --with-stream=dynamic \
- --with-stream_ssl_module \
- --with-stream_realip_module \
- --with-stream_geoip_module=dynamic \
- --with-stream_ssl_preread_module \
- --with-compat \
- --with-pcre-jit
-
- # 执行configure操作检测当前系统环境,已确保能成功安装Nginx,如果出错,请检查上述安装前依赖包是否已经安装。
无报错信息:
make命令的功能是用于编译内核或源码文件。make是GNU工程化编译工具,用于编译众多相互关联的源代码文件,也可以编译内核或模块功能,以工程化的工作方式,提高开发效率。
初次运行make命令时,它会通过扫描Makefile文件找到目标及其依赖关系,并在建立依赖关系后依次编译所对应的源码程序。
- [root@Tomcat nginx-1.20.2]# make
- [root@Tomcat nginx-1.20.2]# make install
- #会将Nginx安装到/usr/local/nginx目录下,所以请勿占用nginx目录命名
- /usr/local/nginx/sbin/nginx #启动
-
- /usr/local/nginx/sbin/nginx -s reload #重启
-
- /usr/local/nginx/sbin/nginx -s quit #关闭nginx
systemd 配置文件说明:
每一个 Unit 都需要有一个配置文件用于告知 systemd 对于服务的管理方式
配置文件存放于 /usr/lib/systemd/system/,设置开机启动后会在 /etc/systemd/system 目录建立软链接文件
每个Unit的配置文件配置默认后缀名为.service
在 /usr/lib/systemd/system/ 目录中分为 system 和 user 两个目录,一般将开机不登陆就能运行的程序存在系统服务里,也就是 /usr/lib/systemd/system
配置文件使用方括号分成了多个部分,并且区分大小写
- 切换到/lib/systemd/system/目录,创建nginx.service文件
- cd /lib/systemd/system/
- vim nginx.service
在文件添加下面内容:
- [Unit] # 记录service文件的通用信息
- Description=nginx - web server # Nginx服务描述信息
- After=network.target remote-fs.target nss-lookup.target # Nginx服务启动依赖,在指定服务之后启动
-
- [Service] # 记录service文件的service信息
- Type=forking # 标准UNIX Daemon使用的启动方式
- PIDFile=/usr/local/nginx/nginx.pid # Nginx服务的pid文件位置
- ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
- 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
- PrivateTmp=true
-
- [Install] # 记录service文件的安装信息
- WantedBy=multi-user.target # 多用户环境下启用
保存并退出后,
- systemctl enable nginx.service
- #开机启动
- #启动Nginx
- systemctl start nginx.service
-
- #终止nginx
- systemctl stop nginx.service
-
- #重启nginx
- systemctl restart nginx.service
-
- #查看nginx进程
- ps -ef | grep nginx
如果没有,则配置80端口或者关闭防火墙即可生效
- firewall-cmd --permanent --add-port=80/tcp #在防火墙添加端口80
- # --permanent 策略写入到永久生效表中,立即生效
-
- firewall-cmd --reload #重启防火墙 或者 systemctl restart firewalld.service
-
- firewall-cmd --query-port=80/tcp #查看端口是否开启
安装完成!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。