系统 centos7.6
1,安装必要的插件
yum install wget lrzsz libcurl curl curl-devel libpng libpng-devel freetype-devel
libxslt libxslt-devel unixODBC OpenIPMI-devel libssh2-devel libevent-devel java-
devel unixODBC-devel net-snmp-devel pcre pcre-devel openssl openssl-devel gcc
gcc-c++ ncurses-devel perl zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-
devel libiconv-devel freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel
libxslt-devel libmcrypt-devel mhash mcrypt fping net-snmp-devel unixODBC-devel
OpenIPMI-devel java-devel wqy-microhei-fonts libevent libevent-devel -y
2安装准备,创建用户,下载安装包
代理https需要添加ngx_http_proxy_connect_module模块(如果不访问https端口无需此
步骤)
创建用户www 创建存放安装软件文件夹tools 创建安装软件目录 application
useradd -s /sbin/nologin -M www
mkdir -p /tools
mkdir -p /application
cd /tools
wget http://nginx.org/download/nginx-1.10.3.tar.gz
wget https://github.com/chobits/ngx_http_proxy_connect_module/archive/master.zip
tar -xzvf nginx-1.10.3.tar.gz
unzip master.zip
进入nginx文件夹并安装connect补丁
yum install -y patch
cd nginx-1.10.3
patch -p1 < /tools/ngx_http_proxy_connect_module-
master/patch/proxy_connect.patch
后面是ngx_http_proxy_connect_module模块具体的路径
cd /tools
wget c http://luajit.org/download/LuaJIT2.0.4.tar.gz
tar xzvf LuaJIT2.0.4.tar.gz
cd LuaJIT2.0.4
make install PREFIX=/usr/local/luajit
# 添加环境变量
cat >> /etc/profile <
export LUAJIT_LIB=/usr/local/luajit/lib
export LUAJIT_INC=/usr/local/luajit/include/luajit2.0
eof
source /etc/profile
ln s /usr/local/luajit/lib/libluajit5.1.so.2 /lib64/libluajit5.1.so.2
cd /application
wget https://github.com/simpl/ngx_devel_kit/archive/v0.3.0.tar.gz
tar xzvf v0.3.0.tar.gz
wget https://github.com/openresty/luanginxmodule/archive/v0.10.8.tar.gz
tar xzvf v0.10.8.tar.gz
cd /tools/nginx1.10.3
3,编译安装nginx
./configure \
--user=www --group=www \
--prefix=/application/nginx \
--with-http_realip_module \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-http_flv_module \
--with-http_gzip_static_module \
--with-cc-opt=-O3 \
--with-stream \
--add-module=/application/ngx_devel_kit-0.3.0 \
--add-module=/application/lua-nginx-module-0.10.8 \
--with-http_stub_status_module \
--error-log-path=/var/log/nginx/logs/error.log \
--http-log-path=/var/log/nginx/logs/access.log \
--http-log-path=/var/log/nginx/logs/access.log \
--add-module=/tools/ngx_http_proxy_connect_module-master
make
make install
安装完成
/application/nginx-1.10.3/sbin/nginx -t 检查 成功
配置nginx.conf文件
server {
listen 8888;
# dns resolver used by forward proxying
resolver 8.8.8.8;
# forward proxy for CONNECT request
proxy_connect;
proxy_connect_allow 443 563;
proxy_connect_connect_timeout 10s;
proxy_connect_read_timeout 10s;
proxy_connect_send_timeout 10s;
# forward proxy for non-CONNECT request
location / {
if ($http_host ~ "(:(\d){4})$"){
set_by_lua $port "
local host = ngx.req.get_headers()[\"host\"];
local port = string.sub(host,-4);
return port ";
set $cookie_passport $port ;
proxy_pass http://$host:$cookie_passport$request_uri;
}
if ($http_host ~ "(:(\d){3})$"){
set_by_lua $port "
local host = ngx.req.get_headers()[\"host\"];
local port = string.sub(host,-3);
return port ";
set $cookie_passport $port ;
proxy_pass http://$host:$cookie_passport$request_uri;
}
if ($http_host ~ "(:(\d){2})$"){
set_by_lua $port "
local host = ngx.req.get_headers()[\"host\"];
local port = string.sub(host,-2);
return port ";
set $cookie_passport $port ;
proxy_pass http://$host:$cookie_passport$request_uri;
}
if ($http_host !~ :){
proxy_pass http://$host$request_uri;
}
}
}
启动nginx
/application/nginx-1.10.3/sbin/nginx