安装依赖包

dnf install -y gcc make pcre-devel zlib-devel openssl-devel perl-ExtUtils-MakeMaker git wget tar

创建用户、组和日志目录

useradd -M -s /sbin/nologin nginx

mkdir -p /var/log/nginx

chown -R nginx:nginx /var/log/mginx

编译安装nginx

tar zxf nginx-1.26.3_http_proxy.tar.gz

cd nginx-1.26.3

./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module --with-http_gzip_static_module --add-module=./ngx_http_proxy_connect_module

make && make install

软链接

ln -s /usr/local/nginx/sbin/nginx/usr/local/sbin/

验证结果

nginx -v

添加nginx服务

vi /lib/systemd/system/nginx.service

[Unit] Description=The NGINX HTTP and reverse proxy server After=network.target [Service] Type=forking PIDFile=/usr/local/nginx/logs/nginx.pid ExecStartPre=/usr/local/sbin/nginx -t ExecStart=/usr/local/sbin/nginx ExecReload=/usr/local/sbin/nginx -s reload ExecStop=/bin/kill -s QUIT $MAINPID TimeoutStopSec=5 KillMode=process PrivateTmp=true User=root Group=root [Install] WantedBy=multi-user.target

systemctl daemon-reload

systemctl start nginx

systemctl enable nginx

配置正向代理

vi /usr/local/nginx/conf/nginx.conf

server { listen 8080; # 代理监听端口 server_name proxy.example.com; # 解析域名使用的 DNS resolver 8.8.8.8 1.1.1.1; # 多个 DNS 用空格分隔 # 启用代理 CONNECT 方法(支持 HTTPS) proxy_connect; proxy_connect_allow 443 80; # 允许代理到 80 和 443 端口 proxy_connect_connect_timeout 10s; proxy_connect_read_timeout 10s; proxy_connect_send_timeout 10s; # 处理 HTTP/HTTPS 请求 location / { proxy_pass $scheme://$http_host$request_uri; # 动态协议 proxy_set_header Host $http_host; # 优化缓冲区 proxy_buffers 256 4k; proxy_max_temp_file_size 0; # 保持连接 proxy_http_version 1.1; proxy_set_header Connection ""; } }

确保配置无误

nginx -t

systemctl restart nginx

验证结果

注:IP一定要写自己的否则无法成功

curl -I -x http://192.168.255.141:8080 http://www.baidu.com

反向代理

配置七层反向代理

准备两台虚拟机

安装网站

dnf -y install httpd

echo "这是我的apache" >/var/www/htmlindex.html

systemctl start httpd

修改代理服务器配置文件

#在httpd段里面添加

upstream backend { #后端地址池设置 server 192.168.255.185:80 ; # 后端主机设置 } server { listen 80; server_name example.com; location / { proxy_pass http://backend; # 动态请求转发 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } location /static/ { root /data/www; # 静态资源直接响应 expires 30d; # 客户端缓存30天 } } vi /etc/hosts 192.168.255.141 example.com

配置四层反向代理

vi /usr/local/nginx/conf/nginx.conf

#在httpd段添加

stream { upstream ssh_cluster { #定义后端地址池 server 192.168.255.185:22; #设置后端地址和服务端口 } server { listen 2222; proxy_pass ssh_cluster; proxy_connect_timeout 5s; # 连接超时时间 proxy_timeout 1h; # 长连接保持时间 } }

systemctl restart nginx

ssh -p 2222root@192.168.255.141

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐