docker通过反向代理通过域名访问nginx报404

发布于 2022-09-11 23:17:29 字数 1700 浏览 29 评论 0

我在本地VM虚拟机中通过docker安装了nginx 镜像,

使用命令
docker run -p 8081:80 --name nginx-test-web
-v /docker-container/docker-nginx/www:/usr/share/nginx/html
-v /docker-container/docker-nginx/conf/nginx.conf:/etc/nginx/nginx.conf
-v /docker-container/docker-nginx/logs:/var/log/nginx
-v /docker-container/docker-nginx/conf.d:/etc/nginx/conf.d
-d nginx

然后在

`/docker-container/docker-nginx/conf.d下创建了
www.dockertest.conf

server {

listen       80;
server_name  www.dockertest.com;

#charset koi8-r;
#access_log  /var/log/nginx/host.access.log  main;

location / {
    root   /usr/share/nginx/html;
    index  index.html index.htm;
    proxy_set_header  Host  $http_host;
    proxy_set_header  X-Real-IP  $remote_addr;
    proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass  http://192.168.72.158:80;  // 虚拟机IP:映射端口(不清楚这个端口是指的映射时8081:80的8081还是80)
}

#error_page  404              /404.html;

# redirect server error pages to the static page /50x.html
#
error_page   500 502 503 504  /50x.html;
location = /50x.html {
    root   /usr/share/nginx/html;
}

`

没有做映射时,直接通过这种形式运行容器

docker run --name my-nginx-test -p 8081:80 -d nginx

然后浏览器通过http://192.168.72.158:8081/

可以访问到 Welcome to nginx! 页面

但是映射配置文件那种方式死活报404

6#6: *2043 open() "/usr/share/nginx/html/50x.html" failed (2: No such file or directory), client: 172.17.0.1, server: www.dockertest.com, request: "GET /favicon.ico HTTP/1.0", upstream: "http://192.168.72.158:80/favicon.ico", host: "www.dockertest.com", referrer: "http://www.dockertest.com/

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文