1.难点
因为公司内网没有nginx以及gcc编译环境,so.......
- 下载所需的 Nginx 包和依赖项:提前下载源码包、依赖包和编译工具。
- 转移到内网环境:将下载的包和文件传输到没有网络的内网服务器。
- 安装并配置:在内网环境中安装 Nginx 并配置服务。
直接安装nginx以及附属配置包,配置包又依赖gcc,gcc有一堆依赖,下载过于麻烦
2.利用docker安装nginx
2.1准备
2.1.1 docker-17.03.0-ce.tgz(版本无所谓)
2.1.2 nginx.tar(在有网络环境下准备nginx的tar文件)
2.1.2.1. 安装 Docker
确保在有网络环境的系统上已经安装 Docker。如果没有安装,可以运行以下命令安装:
# 安装 Docker
sudo apt-get update
sudo apt-get install -y docker.io
# 启动 Docker 服务
sudo systemctl start docker
sudo systemctl enable docker
# 验证 Docker 是否安装成功
docker --version
2.1.2.2. 拉取 Nginx 镜像
从 Docker Hub 拉取官方的 Nginx 镜像:
docker pull nginx
拉取完成后,可以通过以下命令查看镜像:
docker images
输出示例:
REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest 4f380adfc10f 2 weeks ago 142MB
2.1.2.3. 保存镜像为 .tar
文件
使用 docker save
命令将 Nginx 镜像打包为 .tar
文件:
docker save -o nginx.tar nginx:latest
-
-o nginx.tar
:指定输出的文件名为nginx.tar
。 -
nginx:latest
:指定要保存的镜像名称和标签。
2.1.2.4. 验证 .tar
文件
打包完成后,可以验证 .tar
文件是否生成成功:
ls -lh nginx.tar![]()
在哪个目录下执行docker save -o nginx.tar nginx:latest
生成的tar包就在那个目录下
2.2 安装
2.2.1 解压docker
tar -xzvf docker-20.10.9.tgz
sudo cp docker/* /usr/bin/
2.2.2 启动 Docker 服务:
sudo dockerd &
2.2.3 验证 Docker 是否安装成功:
docker --version
你已经有了 nginx.tar
文件,这是 Docker 镜像的打包文件。你需要将其加载到 Docker 中。
-
加载镜像:
docker load -i nginx.tar
-
验证镜像是否加载成功:
docker images
你应该能看到
nginx
镜像。
2.2.4. 启动 Nginx 容器
现在你可以使用加载的 Nginx 镜像启动一个容器。
-
启动 Nginx 容器:
docker run -d --name my-nginx -p 80:80 nginx
这会在后台启动一个名为
my-nginx
的容器,并将宿主机的 80 端口映射到容器的 80 端口。 -
验证容器是否启动成功:
docker ps
你应该能看到
my-nginx
容器正在运行。 -
访问 Nginx:
在浏览器中访问http://<内网机器IP>
,你应该能看到 Nginx 的欢迎页面。
2.2.5 设置nginx.conf
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
# 反向代理 DL-IVRS
location /DL-IVRS/ {
client_max_body_size 50M;
proxy_connect_timeout 6000s;
proxy_send_timeout 6000s;
proxy_read_timeout 6000s;
proxy_pass http://10.100.53.112/DL-IVRS/video/tag/nsfw/file;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# 反向代理 DL-IVRS/IS-CV/about
location /DL-IVRS/IS-CV/about {
client_max_body_size 50M;
proxy_connect_timeout 6000s;
proxy_send_timeout 6000s;
proxy_read_timeout 6000s;
proxy_pass http://10.100.53.112/DL-IVRS/IS-CV/about;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
将此配置文件传输到 /path/to/nginx.conf
启动容器
docker run -d --name my-nginx -p 80:80 -v /path/to/nginx.conf:/etc/nginx/nginx.conf nginx
测试: