nginx 正向代理编译报错ngx_http_request.h:47:0: error —— 筑梦之路

文章介绍了如何通过git下载ngx_http_proxy_connect_module模块,然后对nginx进行patch操作以适配特定版本。在编译和安装nginx时添加模块,并通过systemd管理服务。此外,内容还涉及内网环境下利用nginx实现无证书代理HTTP/HTTPS协议,以及用钉钉机器人进行告警通知的解决方案。
摘要由CSDN通过智能技术生成

记录下这个坑,有很多文章都没解决该问题

git clone https://github.com/chobits/ngx_http_proxy_connect_module.git

tar -zxf nginx-1.22.1.tar.gz

cd nginx-1.22.1

关键步骤在此处,此处不做好,就会出现标题的错误

patch -p1 < /root/ngx_http_proxy_connect_module/patch/proxy_connect_rewrite_102101.patch

此处打补丁,需要对应nginx版本,官方文档中有表格说明,附在后面

./configure --prefix=/usr/local/nginx --pid-path=/var/run/nginx.pid --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-threads --add-module=/root/ngx_http_proxy_connect_module

make  && make install

#注册到systemd 管理

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

[Unit]
Description=nginx
After=network.target remote-fs.target nss-lookup.target
 
[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStartPost=/bin/sleep 0.1
ExecStartPre=/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target

 正向代理模块github地址:GitHub - chobits/ngx_http_proxy_connect_module: A forward proxy module for CONNECT request handling

之前做过类似的,但是没有出现这个问题,也列在这里作为参考资料

解决内网环境下的钉钉告警通知——筑梦之路_内网如何使用钉钉机器人通知_筑梦之路的博客-CSDN博客 nginx无证书代理http/https协议两种解决方案——筑梦之路_nginx ssl_preread_筑梦之路的博客-CSDN博客

这个错误提示说明在加载NGINX的GeoIP2模块时,无法找到对应的共享对象文件。出现这种情况的原因可能是以下几种: 1. 没有正确安装GeoIP2库和NGINX GeoIP2模块。请确保已按照官方文档正确安装了这些组件。 2. GeoIP2库和NGINX GeoIP2模块的路径设置不正确。请检查相关配置文件,并确保路径正确。 3. 无法加载GeoIP2共享对象文件。这可能是因为文件权限不正确,或者文件被删除或移动。请检查文件权限,并确保文件存在于指定的路径中。 解决此问题的步骤如下: 1. 确认已正确安装GeoIP2库和NGINX GeoIP2模块。可以使用以下命令检查是否安装: ``` nginx -V 2>&1 | grep geoip2 ``` 如果没有输出,则表示未安装GeoIP2模块。 2. 检查GeoIP2库和NGINX GeoIP2模块的路径设置是否正确。可以在NGINX配置文件中使用以下指令: ``` geoip2 /path/to/GeoIP2-Country.mmdb { $geoip2_data_country_code country iso_code; } ``` 并确保指定的路径与实际路径匹配。 3. 检查文件权限和路径是否正确。可以使用以下命令检查文件权限: ``` ls -l /usr/local/nginx/modules/ngx_http_geoip2_module.so ``` 如果权限不正确,则需要使用以下命令更改文件权限: ``` chmod 644 /usr/local/nginx/modules/ngx_http_geoip2_module.so ``` 4. 如果文件不存在,则需要重新安装GeoIP2库和NGINX GeoIP2模块,并确保文件存在于指定的路径中。 希望以上方法可以帮助你解决NGINX GeoIP2模块的错误
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值