dockerfile中nginx.conf的放置

有报错:

nginx: [emerg] “user” directive is not allowed here in /etc/nginx/conf.d/nginx.conf:1

解决说明如下:

1、例如dockerfile中关于nginx的内容有这么一段,其中nginx.conf为自定义的配置文件

# 拉取nginx
# 使用稳定版的Alpine Nginx作为基础镜像
FROM nginx:stable-alpine as production-stage

# 从构建阶段复制构建好的应用文件到Nginx的默认静态文件目录
COPY --from=build-stage /app/dist /usr/share/nginx/html

# 删除默认的Nginx配置文件
RUN rm -rf /etc/nginx/conf.d/default.conf

# 添加自定义的Nginx配置文件
ADD ./nginx.conf /etc/nginx/conf.d/

# 暴露端口80
EXPOSE 80

# 让Nginx在前台运行
CMD ["nginx", "-g", "daemon off;"]

2、nginx基础镜像被拉取下来后在容器中自带配置文件/etc/nginx/nginx.conf。
框中的地方可以看到它自动会加载/etc/nginx/conf.d下的全部.conf文件。
所以dockerfile中咱们自定义的conf文件内容就不是完整的nginx.conf的结构,是http这个块的子结构,见如下第3点
在这里插入图片描述

3、自定义的nginx.conf结构
放置的位置是/etc/nginx/conf.d/

  server {
     listen 80;
     server_name localhost;

     location / {
         root   /usr/share/nginx/html;
         index  index.html index.htm;
         # 用于配合前端路由为h5模式使用,防止刷新404 https://router.vuejs.org/zh/guide/essentials/history-mode.html#nginx
         # try_files $uri $uri/ =404;
     }

     # 第一个代理后端地址(vite.config.ts里叫 /api,这里也要保持一致)
     location /api {
         # 如果后端在本地比如127.0.0.1或者localhost请解开下面的rewrite注释即可
         # rewrite  ^.+api/?(.*)$ /$1 break;
         # 这里填写后端地址(后面一定不要忘记添加 / )
         proxy_pass http://10.76.96.xxx:80/;
         proxy_set_header Host $host;
         proxy_set_header Cookie $http_cookie;
         proxy_set_header X-Real-IP $remote_addr;
         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_redirect default;
         add_header Access-Control-Allow-Origin *;
         add_header Access-Control-Allow-Headers X-Requested-With;
         add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
     }
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值