【Nginx学习】Nginx代理mysql数据库
一、使用docker安装Nginx网上教程很多,主要命令:1、安装Nginxdocker pull nginx2 、启动容器# 生成外挂文件夹mkdir -p nginx-all/{www,logs,conf}#参数-d 后台运行,参数-p端口映射,参数--name容器别名,参数-v挂载路径或文件#可以加多个参数docker run -d -p 81:80 -p 9003:9003 --name
·
文章目录
一、使用docker安装Nginx
网上教程很多,主要命令:
1、安装Nginx
docker pull nginx
2 、启动容器
# 生成外挂文件夹
mkdir -p nginx-all/{www,logs,conf}
#参数-d 后台运行,参数-p端口映射,参数--name容器别名,参数-v挂载路径或文件
#可以加多个参数
docker run -d -p 81:80 -p 9003:9003 --name nginx-all \
-v /mnt/vdc1/files/webserver/nginx-all/www:/usr/share/nginx/html \
-v /mnt/vdc1/files/webserver/nginx-all/conf/nginx.conf:/etc/nginx/conf/nginx.conf \
-v /mnt/vdc1/files/webserver/nginx-all/logs:/var/log/nginx nginx
nginx.conf文件默认
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
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;
}
二、命令查看端口
1、查看Liunx端口占用
2、命令nmap端口扫描
- 需要安装nmap命令
- Linux下安装及简单使用nmap
- 查看其他主机(比如mysql所在的主机),有哪些端口是可以开放的
- 使用Telnet也可以
3、docker容器的本机ip地址
ifconfig
# 可以看到docker0的信息,docker本机的ip地址一般为:172.17.0.1
三、docker中安装mysql并通过Nginx代理
1、docker安装mysql5.7
- 查找网上教程就可以了
- 比如映射端口 3306:3306,但是3306并不对外开放,可以在主机内使用172.17.0.1:3306去本地连接docker中的mysql
- 别忘了创建远程访问的mysql账号、密码
2、使用Nginx代理docker中的mysql
#nginx.conf配置
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
#这里监听本机docker中的172.17.0.1:3306,并通过主机的9003端口开放出去
#之后,只要外部连接主机ip:9003,并使用mysql的用户名、密码,就可以访问内部的
#mysql了
stream {
upstream mysql {
server 172.17.0.1:3306;
}
server {
listen 9003;
proxy_connect_timeout 10s;
proxy_timeout 30s;
proxy_pass mysql;
}
}
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;
}
四、总结以及注意
- Nginx需要一定版本以上才能使用“stream”这个配置,最好选用最新版本
- Nginx的使用还有很多需要学习,我这里只是记录工作中尝试的一些。主要还是查看文档
- docker容器就是一台台虚拟机,它们通过桥接的形式与宿主机相连。每个容器都映射到一个或多个宿主机的端口
更多推荐
已为社区贡献1条内容
所有评论(0)