0、前言
掏了一台低廉的mysql云服务器(ecs同区同网),但是没有提供外网ip,希望在调测过程中,能够本地连接它。
那么,在ecs上部署nginx,内网连接mysql。
1、安装docker
2、安装nginx
- 1拉取镜像
docker pull nginx
- 2启动样本容器
docker run --name nginx-temp -d -p 80:80 --restart=always -e TZ="Asia/Shanghai" nginx:latest
- 3创建宿主目录,复制样本数据
mkdir /usr/local/nginx
cd /usr/local/nginx
mkdir conf
docker cp nginx-temp:/var/log/nginx log
docker cp nginx-temp:/etc/nginx/nginx.conf conf/nginx.conf
docker cp nginx-temp:/etc/nginx/conf.d conf.d
docker cp nginx-temp:/usr/share/nginx/html html
- 4修改nginx配置文件
#conf/nginx.conf
详见《附录1》
#conf.d/default.conf
详见《附录2》 - 5运行容器,挂在宿主资源
docker run --name nginx -d -p 80:80 -p 3306:3306 --restart=always -e TZ="Asia/Shanghai" \
-v /usr/local/nginx/log:/var/log/nginx \
-v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/local/nginx/conf.d:/etc/nginx/conf.d \
-v /usr/local/nginx/html:/usr/share/nginx/html \
nginx:latest
- 6参考指令
docker exec -it nginx bash
docker logs -f -t nginx
附录1 conf/nginx.conf
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
stream {
server {
listen 3306;
proxy_pass 192.168.0.45:3306;
}
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
附录2 conf.d/default.conf
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}