我的机器(OSX)上本地运行着一个WordPress(WP)博客。 WP网站URL设置设置为https://abc.dev
,我可以在计算机的浏览器上访问该网站而没有任何问题。
从外观上看,像这样:
WP端口运行在端口443上,我正在使用自签名证书来使其正常工作。我从this website获得了自签名证书。我已将自签名证书导入OSX钥匙串访问并标记为Always Trust
。
这是我用于该WP的 docker-compose.yml 文件的样子:
version: '2'
services:
wordpress:
build: .
ports:
- 8080:80
volumes:
- ./config/php.conf.uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
- ./wp-app:/var/www/html # Full wordpress project
#- ./plugin-name/trunk/:/var/www/html/wp-content/plugins/plugin-name # Plugin development
#- ./theme-name/trunk/:/var/www/html/wp-content/themes/theme-name # Theme development
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_USER: root
WORDPRESS_DB_PASSWORD: password
depends_on:
- db
networks:
- wordpress-network
db:
image: mysql:latest
ports:
- 127.0.0.1:3306:3306
command: [
'--default_authentication_plugin=mysql_native_password',
'--character-set-server=utf8mb4',
'--collation-server=utf8mb4_unicode_ci'
]
volumes:
- ./wp-data:/docker-entrypoint-initdb.d
environment:
MYSQL_DATABASE: wordpress
MYSQL_ROOT_PASSWORD: password
networks:
- wordpress-network
caddy:
image: abiosoft/caddy
restart: always
ports:
- "80:80"
- "443:443"
links:
- wordpress
volumes:
- "./Caddyfile:/etc/Caddyfile"
- "./caddy:/var/caddy"
networks:
- wordpress-network
networks:
wordpress-network:
driver: bridge
这是Caddyfile:
abc.dev:443
root /var/www/html
tls /var/caddy/cert.pem /var/caddy/key.pem
proxy / wordpress {
transparent
}
log stdout
errors stderr
树形结构如下:
├── Caddyfile
├── caddy
│ ├── cert.pem
│ └── key.pem
└── docker-compose.yml
由Docker Compose打开的端口:
$ lsof -PiTCP -sTCP:LISTEN | grep com.dock
com.docke 497 zz 18u IPv4 0xc97e1c7b362c847b 0t0 TCP localhost:3306 (LISTEN)
com.docke 497 zz 23u IPv6 0xc97e1c7b3aa15d0b 0t0 TCP localhost:3306 (LISTEN)
com.docke 497 zz 24u IPv4 0xc97e1c7b50618b83 0t0 TCP *:8080 (LISTEN)
com.docke 497 zz 25u IPv6 0xc97e1c7b3aa1624b 0t0 TCP localhost:8080 (LISTEN)
com.docke 497 zz 27u IPv4 0xc97e1c7b39e63b83 0t0 TCP *:443 (LISTEN)
com.docke 497 zz 28u IPv4 0xc97e1c7b5061b85b 0t0 TCP *:80 (LISTEN)
我在wordpress
打开8080
端口的主要原因是因为Caddy希望打开80
和443
端口。因此,这样做可以帮助我解决端口冲突问题。
我现在的问题是,我想在手机上访问WP站点,并且我希望URL在手机中也为https://abc.dev
。
在过去的几天里,我一直在与Squid代理和Mitmproxy到处乱逛,没有发现任何运气。
我一般尝试过的一些事情:
reverse
模式的Mitmproxy upstream
模式的Mitmproxy 以上所有步骤都不适合我,而且我不知道如何使此设置适合我。
我不想将WP网站URL设置更改为其他URL,即http://localhost[:port]
或https://localhost[:port]
,因为它在我的计算机上可以正常工作。
此外,我希望设置的外观和行为与生产网站一样,该网站使用相同的URL结构https://example.com
运行。
我找到了CharlesProxy,但是我不喜欢它,因为它是一种付费软件。我确信Squid,Mitmproxy和其他一些工具可以帮助我解决这个问题。我只是不确定该怎么做。
非常感谢您提供的所有帮助和指示。