docker中使用nginx访问宿主机网络

docker-compose文件

bash 复制代码
version: "3.7"
services:
    nginx:
        image: nginx
        container_name: nginx
        ports:
            - 8088:80
        volumes:
            - ./nginx/nginx.conf:/etc/nginx/nginx.conf
            - ./nginx/conf.d:/etc/nginx/conf.d
            - ./nginx/html:/etc/nginx/html
            - ./nginx/log:/var/log/

        network_mode: host   #使用宿主机网络

nginx.conf文件内容

bash 复制代码
# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user root;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include //nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.conf;

 #   server {
 #       listen       8088 default_server;
 #       listen       [::]:8088 default_server;
 #       server_name  _;
 #       root         /etc/nginx/html;
 #
 #       # Load configuration files for the default server block.
 #       include /etc/nginx/default.d/*.conf;
 #
 #       location / {
 #       }
 #
 #       error_page 404 /404.html;
 #       location = /404.html {
 #       }
 #
 #       error_page 500 502 503 504 /50x.html;
 #       location = /50x.html {
 #       }
 #   }

}

nginx/conf.d中config文件内容

bash 复制代码
server {
        listen       8088;
        server_name localhost;#域名
        access_log /var/log/nginx/dev.access.log;
        access_log on;
        error_log  /var/log/nginx/dev.error.log;
        # gzip setting
        gzip on;
        gzip_min_length  1k;
        gzip_buffers     4 16k;
        gzip_http_version 1.1;
        gzip_comp_level 9;
        gzip_types       text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php application/javascript application/json;
        gzip_disable "MSIE [1-6]\.";
        gzip_vary on;
        absolute_redirect off;
        location ^~ /demo/ {
        		# 172.17.0.1在docker中默认访问宿主机网络
        		# 或者直接访问宿主机网络
				proxy_pass http://172.17.0.1:80/; 
				tcp_nodelay     on;
				proxy_set_header Host $host:$server_port;
				proxy_set_header X-Real-Ip $remote_addr;
				proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
      
	}

就是有一个问题,

使用 curl http://localhost:8088/demo/ 访问正常

使用 curl http://localhost:8088/demo 就出现问题了

301 Moved Permanently,这个问题现在没有解决掉

哪位大神帮帮我吧!

关于nginx加不加斜杠参考: https://blog.csdn.net/weishuai90/article/details/131133621

nginx优化参考: https://www.jianshu.com/p/0fa77899913a

相关推荐
tonngw4 小时前
【Mac 从 0 到 1 保姆级配置教程 16】- Docker 快速安装配置、常用命令以及实际项目演示
macos·docker·容器·开源·github·docker desktop·orbstack
debug 小菜鸟6 小时前
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
docker·云计算·aws
SpikeKing7 小时前
Server - 使用 Docker 配置 PyTorch 研发环境
pytorch·docker·llm
是小满满满满吗8 小时前
传输层:udp与tcp协议
linux·服务器·网络
斯普信云原生组8 小时前
Docker构建自定义的镜像
java·spring cloud·docker
小刘同学++8 小时前
ECB(电子密码本,Electronic Codebook) 和 CBC(密码分组链接,Cipher Block Chaining)区分于用途
网络·ssl
小柏ぁ9 小时前
calico/node is not ready: BIRD is not ready: BGP not established with xxx
运维·docker·kubernetes
gadiaola9 小时前
【计算机网络】第3章:传输层—TCP 拥塞控制
网络·网络协议·tcp/ip·计算机网络
猎板PCB厚铜专家大族9 小时前
多层PCB技术解析:从材料选型到制造工艺的深度实践
网络·制造
FakeOccupational11 小时前
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
网络·游戏