- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在多次尝试失败后,我在这里问。每个人都不是编程问题,但我认为与社区相关。
我一直在尝试通过局域网上的手机访问我的 docker-compose
开发网站,就像这样 https://lan_server_ip:8000
(用于 CSS 检查)但是我我遇到了各种各样的问题,想知道是否有一种简单的代理类型解决方案可以让我从 LAN 访问我的开发服务器。
主要问题是我的 symfony 应用程序只能识别在应用程序本身内设置的单个受信任的 ip 127.0.0.1。我需要一个无需修改 symfony 应用程序的解决方案,因为为设备添加 ips 是不切实际的;尤其是动态 ip。
想法是有一个接口(interface)来连接而不是主 nginx,这将使网站相信所有请求都来自主机 127.0.0.1。或者用新的服务器或位置修改我的 nginx
配置?我尝试重写 header ,但到目前为止没有成功。
目前在浏览器上使用响应式设计,但它远非准确和最新。我唯一真正的解决方案是从生产网站上查找问题。
我相信添加一个新容器来解决这个问题,但是如何呢?
我的 docker-compose.yaml
version: "3"
services:
nginx:
container_name: nginx
image: "${NGINX_IMAGE}"
build: build/nginx
restart: always
env_file: .env
ports:
- "8000:443"
volumes:
- "${APP_HOST_NGINX_CONF}:${APP_CONTAINER_NGINX_CONF}:ro"
- "${APP_HOST_CERTS}:${APP_CONTAINER_CERTS}"
- "${APP_HOST_DIR}/public:${APP_CONTAINER_DIR}/public:ro"
- "/etc/localtime:/etc/localtime:ro"
networks:
app_network:
depends_on:
- app
app:
container_name: app
image: "${APP_IMAGE}"
restart: always
build: build/app
env_file: .env
networks:
app_network:
volumes:
- type: bind
source: ${APP_HOST_DIR}
target: ${APP_CONTAINER_DIR}
- type: bind
source: ${PHP_INI}
target: /usr/local/etc/php/php.ini
- type: bind
source: /etc/localtime
target: /etc/localtime:ro
depends_on:
- database
database:
container_name: mariadb
image: "mariadb:${MARIADB_VERSION}"
restart: always
env_file: .env
volumes:
- "${SQL_INIT}:/docker-entrypoint-initdb.d"
- type: bind
source: ${MARIADB_DATA_DIR}
target: /var/lib/mysql
- type: bind
source: ${MARIADB_LOG_DIR}
target: /var/logs/mysql
- type: bind
source: ${MARIADB_CERTS_DIR}
target: /etc/certs/
- type: bind
source: /etc/localtime
target: /etc/localtime:ro
ports:
- "3306:3306"
networks:
app_network:
command: [
"mysqld",
"--character-set-server=utf8mb4",
"--collation-server=utf8mb4_general_ci",
"--require_secure_transport=OFF",
"--bind-address=0.0.0.0",
"--ssl-key=/etc/certs/server-key.pem",
"--ssl-cert=/etc/certs/server-cert.pem",
"--ssl-ca=/etc/certs/ca-cert.pem",
]
networks:
app_network:
nginx.conf
#./images/nginx/build/default.conf
server {
listen 80 default_server;
server_name _;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name 127.0.0.1;
ssl_certificate /etc/nginx/certs/dev.crt;
ssl_certificate_key /etc/nginx/certs/dev.key;
index index.php index.html;
root /var/www/app/public;
client_max_body_size 128M;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass app:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
error_log /var/log/nginx/app.error.log;
access_log /var/log/nginx/app.access.log;
}
最佳答案
我不是 Symphony 和您描述的可信主机机制方面的专家在您的问题评论中,但是,如果实际问题是模拟您的请求来自 127.0.0.1
,您可以尝试配置 nginx
以在 中提供该值代理您的应用程序时的 Host
header 。
使用 FastCGI,您可以在 nginx
配置的 location ~\.php$
block 中获得所需的结果,包括以下行:
fastcgi_param HTTP_HOST 127.0.0.1;
例如:
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass app:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTP_HOST 127.0.0.1;
}
请谨慎对待我的话:正如我所说,我并不完全理解 Symphony,我不想给您带来任何问题。
关于Docker 为任何 LAN 设备伪造本地主机访问权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73946901/
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 4 年前。 Improv
PowerShell Web Access 允许您通过 Web 浏览器运行 PowerShell cmdlet。它显示了一个基于 Web 的控制台窗口。 有没有办法运行 cmdlet 而无需在控制台窗
我尝试在无需用户登录的情况下访问 Sharepoint 文件。 我可以通过以下任一方式获取访问 token 方法一: var client = new RestClient("https://logi
我目前正在尝试通过 Chrome 扩展程序访问 Google 服务。我的理解是,对于 JS 应用程序,Google 首选的身份验证机制是 OAuth。我的应用目前已成功通过 OAuth 向服务进行身份
假设我有纯抽象类 IHandler 和派生自它的类: class IHandler { public: virtual int process_input(char input) = 0; };
我有一个带有 ThymeLeaf 和 Dojo 的 Spring 应用程序,这给我带来了问题。当我从我的 HTML 文件中引用 CSS 文件时,它们在 Firebug 中显示为中止。但是,当我通过在地
这个问题已经有答案了: JavaScript property access: dot notation vs. brackets? (17 个回答) 已关闭 6 年前。 为什么这不起作用? func
我想将所有流量重定向到 https,只有 robot.txt 应该可以通过 http 访问。 是否可以为 robot.txt 文件创建异常(exception)? 我的 .htaccess 文件: R
我遇到了 LinkedIn OAuth2: "Unable to verify access token" 中描述的相同问题;但是,那里描述的解决方案并不能解决我的问题。 我能够成功请求访问 toke
问题 我有一个暴露给 *:8080 的 Docker 服务容器. 我无法通过 localhost:8080 访问容器. Chrome /curl无限期挂断。 但是如果我使用任何其他本地IP,我就可以访
我正在使用 Google 的 Oauth 2.0 来获取用户的 access_token,但我不知道如何将它与 imaplib 一起使用来访问收件箱。 最佳答案 下面是带有 oauth 2.0 的 I
我正在做 docker 入门指南:https://docs.docker.com/get-started/part3/#recap-and-cheat-sheet-optional docker-co
我正在尝试使用静态 IP 在 AKS 上创建一个 Web 应用程序,自然找到了一个带有 Nginx ingress controller in Azure's documentation 的解决方案。
这是我在名为 foo.js 的文件中的代码。 console.log('module.exports:', module.exports) console.log('module.id:', modu
我试图理解访问键。我读过https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-se
我正在使用 MGTwitterEngine"将 twitter 集成到我的应用程序中。它在 iOS 4.2 上运行良好。当我尝试从任何 iOS 5 设备访问 twitter 时,我遇到了身份验证 to
我试图理解访问键。我读过https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-se
我正在使用以下 API 列出我的 Facebook 好友。 https://graph.facebook.com/me/friends?access_token= ??? 我想知道访问 token 过
401 Unauthorized - Show headers - { "error": { "errors": [ { "domain": "global", "reas
我已经将我的 django 应用程序部署到 heroku 并使用 Amazon s3 存储桶存储静态文件,我发现从 s3 存储桶到 heroku 获取数据没有问题。但是,当我测试查看内容存储位置时,除
我是一名优秀的程序员,十分优秀!