Debian编译安装Nginx,模拟apt目录结构

QQ截图20230510140703.png

QQ截图20230510141913.png

此教程为 Chatgpt4 生成,排除了些错误,自己操作了下安装成功,所以记录一下。
建议使用普通用户编译安装

安装完成后可以复制编译好的 nginx 二进制文件和模块文件,替换掉apt软件源安装的二进制文件

1. 系统更新和准备环境

首先,更新系统软件包并安装必要的依赖项:

sudo apt update
sudo apt upgrade
sudo apt install build-essential libtool automake autoconf zlib1g-dev libpcre3-dev libssl-dev libxml2-dev libxslt1-dev libgd-dev libgeoip-dev libgoogle-perftools-dev libperl-dev libpam0g-dev libpcre++-dev libcurl4-openssl-dev libyajl-dev libmaxminddb-dev liblmdb-dev git

2. 下载 Nginx 和附加模块

下载 Nginx 并解压

wget http://nginx.org/download/nginx-1.22.0.tar.gz
tar -xvf nginx-1.22.0.tar.gz

注意 :请从 Nginx 官网 查看最新版本,并相应地替换下载链接。

下载并解压需要的附加模块:

# ngx_brotli
git clone https://github.com/google/ngx_brotli.git
cd ngx_brotli
git submodule update --init --recursive
cd ..

# ngx_headers_more
git clone https://github.com/openresty/headers-more-nginx-module.git

# ngx_cache_purge
git clone https://github.com/nginx-modules/ngx_cache_purge.git

3. 配置并编译 Nginx

进入 Nginx 源代码目录,配置编译选项(包括附加模块)
如果第三方模块要以动态模块加载的话可以用将--add-module改成--add-dynamic-module

cd nginx-1.22.0
/configure --prefix=/usr/lib/nginx \
            --sbin-path=/usr/sbin/nginx \
            --conf-path=/etc/nginx/nginx.conf \
            --error-log-path=/var/log/nginx/error.log \
            --http-log-path=/var/log/nginx/access.log \
            --pid-path=/var/run/nginx.pid \
            --lock-path=/var/run/nginx.lock \
            --http-client-body-temp-path=/var/cache/nginx/client_temp \
            --http-proxy-temp-path=/var/cache/nginx/proxy_temp \
            --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \
            --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \
            --http-scgi-temp-path=/var/cache/nginx/scgi_temp \
            --user=nginx \
            --group=nginx \
            --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-http_perl_module=dynamic \
            --with-mail=dynamic \
            --with-mail_ssl_module \
	    --with-stream \
            --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 \
            --with-pcre-jit \
            --with-zlib-asm=CPU \
            --with-debug \
            --with-cc-opt='-O2 -g -pipe -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' \
            --with-ld-opt='-Wl,-z,relro -Wl,-E' \
	    --add-module=../ngx_brotli \
            --add-module=../headers-more-nginx-module \
            --add-module=../ngx_cache_purge

编译 Nginx

make

4. 安装 Nginx

使用 sudo 安装 Nginx:

sudo make install

创建一个名为 nginx 的系统用户和用户组:

sudo adduser --system --no-create-home --disabled-login --disabled-password --group nginx

创建必要的目录:

sudo mkdir -p /var/cache/nginx
sudo chown nginx:nginx /var/cache/nginx
sudo chown -R nginx:nginx /usr/local/nginx

添加 Nginx 系统服务文件

sudo vim /etc/systemd/system/nginx.service
[Unit]
Description=The Nginx HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
ExecStartPre=/usr/sbin/nginx -t
ExecStart=/usr/sbin/nginx
ExecReload=/usr/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

启用并启动 Nginx 服务

sudo systemctl enable nginx
sudo systemctl start nginx
sudo systemctl status nginx

现在,您的 Debian 10 系统上已经安装了最新版的 Nginx,包括各种常用模块和安全模块。您可以通过运行 nginx -vnginx -V 命令查看 Nginx 的版本信息和编译选项。

5.可选

迁移到通过软件源安装的机器

参考下面教程

编译安装的nginx迁移到通过软件源安装的机器

注意 :请根据需要配置 Nginx。默认的配置文件位于 /etc/nginx/nginx.conf。您可以在 Nginx 官方文档 中找到有关配置的详细信息。

# nginx 

本文由:星际难民
实践,测试,整理发布.如需转载请注明地址 本文标题:Debian编译安装Nginx,模拟apt目录结构
地址:https://530503.xyz/articles/2023/05/10/1683703842946.html

评论

取消