nginx配置正反向代理
安装依赖包
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

更多推荐


所有评论(0)