使用 Docker + SSH代理 来实现访问内网网站
导览
目录
magento-in-docker magento-in-docker-ssl
一,实现SSH远程代理本地站点命令
1,查看 docker 日志。
【 查看Nginx请求错误详情 】
docker logs <magento-webserver 容器 Nginx 名称>
2,docker 重建命令。
【修改 Nginx 配置或修改容器其它时使用命令】
docker-compose stop && docker-compose up -d --build && docker ps
3,开启关闭SElinux
【 如果是云平台(阿里云、腾讯云) 使用过docker,可能就用不到这些命令了。】
setenforce 0
setenforce 1
4,其它
【 端口查看等 】
#查看 SSH 开放的端口号
semanage port -l|grep ssh
#查看 端口的占用
netstat -an | grep :8060
#开启端口号 10086 ( 阿里云服务器开放端口需要在后台安全组里操作 )
semanage port -a -t ssh_port_t -p tcp 10086
#重启 SSHd
systemctl restart sshd
#在本地执行SSH 连接 ; `10086`端口用于隧道
ssh -R 10086:<本地IP>:8060 root@<远程IP> -vnNT
二,简单的可用代码
更改下面两个文件,完成搭建。( 其它环境下可查看参考链接 )
Nginx:
<server ip>
填写服务器IP
# upstream tunnel {
# server <server ip>:10086;
# }
server {
listen 8080;
location / {
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# proxy_set_header Host $http_host;
# proxy_redirect off;
# proxy_pass http://tunnel;
proxy_pass http://<server ip>:10086;
}
}
docker-compose.yml :
webserver:
image: nginx:alpine
container_name: magento-webserver
restart: unless-stopped
working_dir: /application
volumes:
- ./data/nginx:/etc/nginx/conf.d
- ./data/certbot/conf:/etc/letsencrypt
- ./data/certbot/www:/var/www/certbot
- .:/application
- ./phpdocker/nginx/nginx.conf:/etc/nginx/conf.d/default.conf
ports:
- "80:80"
- "443:443"
- "8060:8080"
command: "/bin/sh -c 'while :; do sleep 6h & wait $${!}; nginx -s reload; done & nginx -g \"daemon off;\"'"
基于上述添加了新增端口 ( 使用云服务器请在安全组开放端口 )
- "8060:8080"
三,FQ
https://my.oschina.net/abcfy2/blog/177094
https://blog.51cto.com/liuqh/1772983
https://blog.csdn.net/algzjh/article/details/102786175
https://blog.ipsfan.com/5412.html
四,可恶的问题
问题都是可恶的,如果不想放弃,克服它吧。