访问指定的URL时发生404错误。我在生产环境中部署了使用docker构建的laravel。我已经确认它在本地工作,我认为URL的规范很奇怪。在本地,URL使用localhost,在生产环境中,它使用获取的域。
.env
APP_NAME=Laravel
APP_ENV=production
APP_DEBUG=false
APP_KEY=<<APP_KEY>>
APP_URL=<<my_domain>>
LOG_CHANNEL=stackdocker-compose.yml
version: '3'
services:
php:
container_name: php
build: ./docker/php
volumes:
- ./server:/var/www
nginx:
image: nginx
container_name: nginx
ports:
- 81:81
volumes:
- ./server:/var/www
- ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
depends_on:
- php
db:
image: mysql:5.7
container_name: db-host
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: database
MYSQL_USER: test
MYSQL_PASSWORD: test
TZ: 'Asia/Tokyo'
command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
volumes:
- ./docker/db/data:/var/lib/mysql
- ./docker/db/my.cnf:/etc/mysql/conf.d/my.cnf
- ./docker/db/sql:/docker-entrypoint-initdb.d
ports:
- 3307:3307default.conf
server {
listen 81;
index index.php index.html;
root /var/www/laravel/public;
location / {
root /var/www/laravel/public;
index index.html index.php;
try_files $uri $uri/ /index.php$query_string;
}docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
A nginx "nginx -g 'daemon of…" 3 hours ago Up About an hour 80/tcp, 0.0.0.0:81->81/tcp nginx
B mysql:5.7 "docker-entrypoint.s…" 3 hours ago Up 2 hours 3306/tcp, 33060/tcp, 0.0.0.0:3307->3307/tcp db-host
C tsurikatsu_web_php "docker-php-entrypoi…" 4 hours ago Up 2 hours 9000/tcp php我期望显示laravel项目,但实际输出是404错误
请帮帮我。
发布于 2019-06-20 12:35:36
根据我在docker-compose.yml文件中看到的,您将服务器81端口映射到nginx容器81端口,这意味着您必须通过指定端口81来访问您的站点,除非您将流量从端口80转发到localhost:81。
如果您没有使用任何代理转发您的vultr服务器,并且您的端口80没有被任何东西保留,那么我建议您尝试用80:81替换nginx服务中的端口映射
如果这不是一个选项(服务器上的某些东西已经使用了端口80 ),那么无论何时请求特定的主机名,您都应该将流量从端口80转发到端口81。
https://stackoverflow.com/questions/56666124
复制相似问题