使用 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>

#       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"

三,参与或原理

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

四,可恶的问题

问题都是可恶的,如果不想放弃,克服它吧。

使用 Docker + SSH代理 来实现访问内网网站

上一篇:web前端能做到多少岁?2年能发展到前端技术大牛吗?


下一篇:JS中undefined和null的区别?什么时候应该赋值null?