在我们编译安装Nginx的时候,在默认情况下,我们使用的是HTTP,这也是在默认的内网都是在使用这种模式。有些模块在默认情况下并不会被安装,比如http_ssl_module
,那么为了让Nginx支持HTTPS,必须添加这个模块。
下面讲解如何在已经安装过后再次添加新的模块。
1、找到源码目录
找到安装nginx的源码根目录(即安装包存放目录),如果没有的话下载新的源码并解压,然后执行下面的命令。默认情况下,我们都会在用户配置文件配置环境变量,例如NGINX_HOME
。默认情况下,nginx
的安装目录在/usr/local/nginx/sbin/nginx
$ cd /data/software/
$ ls
nginx-1.23.3 nginx-1.23.3.tar.gz
$ cd nginx-1.23.3
2、重新编译的代码和模块
如果还需要其他的参数可以在后面使用--with
来增加。
$ ./configure --prefix=/usr/local/nginx --with-http_ssl_module
$ make
# 下面是一些执行信息
........
Configuration summary
using system PCRE library
OpenSSL library is not used
using system zlib library
nginx path prefix: "/usr/local/nginx"
nginx binary file: "/usr/local/nginx/sbin/nginx"
nginx modules path: "/usr/local/nginx/modules"
nginx configuration prefix: "/usr/local/nginx/conf"
nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
nginx pid file: "/usr/local/nginx/logs/nginx.pid"
nginx error log file: "/usr/local/nginx/logs/error.log"
nginx http access log file: "/usr/local/nginx/logs/access.log"
nginx http client request body temporary files: "client_body_temp"
nginx http proxy temporary files: "proxy_temp"
nginx http fastcgi temporary files: "fastcgi_temp"
nginx http uwsgi temporary files: "uwsgi_temp"
nginx http scgi temporary files: "scgi_temp"
# 到这里基本上结束了
当然,你还可以这样子
代码语言:javascript复制$ ./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/sbin/ --with-http_stub_status_module --with-http_ssl_module
$ make
关于其他模块可以酌情参考或者去官网查询下。
代码语言:javascript复制$ ./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
注意事项:
执行make(注意:千万别make install,否则就覆盖安装了), make完之后在/data/software/nginx-1.23.3/objs
目录下就多了个nginx,这个就是新版本的程序了,其实每次我们执行make的时候一些文件等都在这里,如果上一次这个文件还在,可以删除后重新make。
3、备份旧nginx程序,拷贝新nginx程序
代码语言:javascript复制$ cd /usr/local/nginx/sbin/
$ mv nginx nginx_bak20230228
$ cp /data/software/nginx-1.23.3/objs/nginx /usr/local/nginx/sbin/
4、测试安装是否正确
测试安装主要是测试两个方面,一个是测试配置文件是否有错误,另外一个是测试新版本是否已经安装HTTPS模块。当测试没有问题的时候,我们就可以重新启动服务来让nginx进入工作了。
代码语言:javascript复制# 测试配置文件是否有错误
$ /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
# 测试新版本是否已经安装HTTPS模块
$ /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.23.2
built by gcc 4.8.5 20120623 (Red Hat 4.8.5-4) (GCC)
built with OpenSSL 1.0.1e-fips 11 Feb 2022
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --with-http_ssl_module
5、重启Nginx,或者重载服务
下面进行重新加载Nginx,来让服务运行起来。
$ /usr/local/nginx/sbin/nginx -s reload $ ./nginx -s quit $ ./nginx |
---|
6、查看当前笔记本nginx已经安装的模块
7、写在最后
作为一名运维工程师需要了解掌握很多技能,比如说操作系统、开源组件、监控相关、编程知识、网络知识、数据库知识、自动化技能和日志分析能力。当然也不能缺少一些软技能,例如沟通、抗压等,要和同事、领导以及客户保持良好的沟通,理解需求,提供有效的解决方案,需要应对高强度的工作压力,保持冷静,快速解决问题。
我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!