安装环境

# 安装make:
yum -y install gcc automake autoconf libtool make
# 安装g++:
yum install gcc gcc-c++

安装可选库

一般我们都需要先装pcre和zlib,前者为了重写rewrite,后者为了gzip压缩

选定源码目录

可以是任何目录,本文选定的是/usr/local/src

安装PCRE库

也可以选择从GitHub下载

# 创建源码目录
mkdir /usr/local/src/pcre && cd /usr/local/src/pcre
# 下载源码
wget https://sourceforge.net/projects/pcre/files/pcre/8.45/pcre-8.45.tar.gz
# 解压
tar -zxf pcre-8.45.tar.gz
# 进入源码目录
cd pcre-8.45
# 安装
./configure
make && make install
安装zlib库
# 创建源码目录
mkdir /usr/local/src/zlib && cd /usr/local/src/zlib
# 下载源码
wget https://zlib.net/zlib-1.2.12.tar.gz
# 解压
tar -zxf zlib-1.2.12.tar.gz
# 进入源码目录
cd zlib-1.2.12
# 安装
./configure
make && make install
安装或更新openssl(某些vps默认没装openssl)

参考

安装Nginx

下载nginx源码
mkdir /www/server/nginx/src
cd /www/server/nginx/src
wget https://nginx.org/download/nginx-1.20.2.tar.gz
# 解压
tar -zxf nginx-1.20.2.tar.gz
# 进入源码目录
cd nginx-1.20.2
# 编译安装
./configure --prefix=/www/server/nginx/nginx-1.20.2 --with-http_stub_status_module --with-http_ssl_module --with-http_sub_module --with-http_v2_module --with-http_gzip_static_module --with-file-aio --with-http_realip_module --with-openssl=/usr/local/src/openssl/openssl-3.0.2 --with-pcre=/usr/local/src/pcre/pcre-8.45 --with-zlib=/usr/local/src/zlib/zlib-1.2.12
make && make install
创建结构
# 证书
mkdir /www/server/nginx/cert
# server配置
mkdir /www/server/nginx/conf
mkdir /www/server/nginx/proxy_cache_dir
mkdir /www/server/nginx/proxy_temp_dir
mkdir /www/server/nginx/rewrite
http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    gzip  on;
    gzip_min_length  1k;
    gzip_buffers     4 16k;
    gzip_http_version 1.1;
    gzip_comp_level 2;
    gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml;
    gzip_vary on;
    gzip_proxied   expired no-cache no-store private auth;
    gzip_disable   "MSIE [1-6]\.";

    include /www/server/nginx/conf/*.conf;
}