本次实验一台采用编译安装得模式具体安装模式如下
源码编译安装nginx
1、安装gcc环境
编译时依赖gcc环境
yum -y install gcc gcc-c++ autoconf automake make
2、安装 pcre
提供nginx支持重写功能
yum -y install pcre pcre-devel
3、安装zlib
zlib 库提供了很多压缩和解压缩的方式,nginx 使用 zlib 对 http 包内容进行 gzip 压缩
yum -y install zlib zlib-devel make libtool
4、安装openssl
安全套接字层密码库,用于通信加密
yum -y install openssl openssl-devel
nginx 安装
手动创建用户和用户组
groupadd nginx
useradd nginx -g nginx -s /sbin/nologin -M
官网下载nginx源码包
wget https://nginx.org/download/nginx-1.23.1.tar.gz
解压
tar -zxvf nginx-1.20.2.tar.gz
cd nginx-1.20.2
#检查平台安装环境
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --user=nginx --group=nginx
参数说明:
–prefix=/usr/local/nginx
#编译安装目录
–user=nginx
#所属用户nginx
–group=nginx
#所属组nginx
–with-http_stub_status_module
#该模块提供nginx的基本状态信息
–with-http_ssl_module
编译源码并安装
make # 编译
make install # 安装
ningx操作
启动服务
/usr/local/nginx/sbin/nginx
重新加载服务
/usr/local/nginx/sbin/nginx -s reload
停止服务
/usr/local/nginx/sbin/nginx -s stop
nginx版本信息查看
/usr/local/nginx/sbin/nginx -V
nginx服务化配置
配置服务文件
vi /lib/systemd/system/nginx.service
配置信息
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx reload
ExecStop=/usr/local/nginx/sbin/nginx quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
配置服务化后得启动
systemctl start nginx
systemctl status nginx
systemctl stop nginx
systemctl enable nginx
另外一台位yum安装得方式
yum -y install nginx
实验过程:
1 nginx-1 启动网站(内容)
nginx-1的IP:192.168.159.136
2 nginx-2 启动代理程序
nginx-2的IP:192.168.159.130
location / {
.....
proxy_pass http://192.168.100.10:80;
proxy_redirect default;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 30;
proxy_send_timeout 60;
proxy_read_timeout 60;
proxy_buffering on;
proxy_buffer_size 32k;
proxy_buffers 4 128k;
proxy_busy_buffers_size 256k;
proxy_max_temp_file_size 256k;
}
配置含义
proxy_pass :真实服务器
proxy_redirect :如果真实服务器使用的是的真是IP:非默认端口。则改成IP:默认端口。
proxy_set_header:重新定义或者添加发往后端服务器的请求头
proxy_set_header X-Real-IP :启用客户端真实地址(否则日志中显示的是代理在访问网站)
proxy_set_header X-Forwarded-For:记录代理地址
proxy_connect_timeout::后端服务器连接的超时时间_发起三次握手等候响应超时时间
proxy_send_timeout:后端服务器数据回传时间_就是在规定时间之内后端服务器必须传完所有的数据
proxy_read_timeout :nginx接收upstream(上游/真实) server数据超时, 默认60s, 如果连续的60s内没有收到1个字节, 连接关闭。像长连接
proxy_buffering on;开启缓存
proxy_buffer_size:proxy_buffer_size只是响应头的缓冲区
proxy_buffers 4 128k; 内容缓冲区域大小
proxy_busy_buffers_size 256k; 从proxy_buffers划出一部分缓冲区来专门向客户端传送数据的地方
proxy_max_temp_file_size 256k;超大的响应头存储成文件。
使用PC客户端访问nginx-2服务器地址
浏览器中输入http://192.168.159.130
成功访问nginx-1服务器页面
观察nginx-1服务器的日志
192.168.159.130 - - [08/Oct/2022:14:57:46 +0800] “GET /favicon.ico HTTP/1.0” 404 555 “http://192.168.159.130/” “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36” “192.168.159.1”
192.168.159.130 代理服务器地址
192.168.159.1 客户机地址。
实验成功。nginx代理服务器