Skip to content

Commit

Permalink
fix:前端项目使用nginx服务代理,不在使用后端服务代理 (#100)
Browse files Browse the repository at this point in the history
* fix:前端项目使用nginx服务代理,不在使用后端服务代理

* fix:修改备注
  • Loading branch information
chaorenluo authored Apr 29, 2024
1 parent d3f6470 commit 8061473
Show file tree
Hide file tree
Showing 4 changed files with 71 additions and 5 deletions.
16 changes: 12 additions & 4 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,25 @@ WORKDIR /xiaoju-survey
# 复制文件到工作区间
COPY . /xiaoju-survey

# 安装nginx
RUN apt-get update && \
apt-get install -y nginx

RUN npm config set registry https://registry.npmjs.org/

# 安装项目依赖
RUN cd /xiaoju-survey/web && npm install && npm run build
# 用了后端服务代理启动,建议使用nginx启动
RUN cd /xiaoju-survey && cp -af ./web/dist/* ./server/public/
#RUN cd /xiaoju-survey && cp -af ./web/dist/* ./server/public/
# 覆盖nginx配置文件
COPY ./nginx/nginx.conf /etc/nginx/nginx.conf

RUN cd /xiaoju-survey/server && npm install && npm run build

# 暴露端口 需要跟server的port一致
EXPOSE 3000
# 暴露端口 需要跟nginx的port一致
# EXPOSE 3000
EXPOSE 8080


# docker入口文件,运行pm2启动,并保证监听不断
# docker入口文件,启动nginx和运行pm2启动,并保证监听不断
CMD ["sh","docker-run.sh"]
2 changes: 1 addition & 1 deletion docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ services:
container_name: xiaoju-survey
restart: always
ports:
- "8080:3000" # API端口
- "8080:8080" # API端口
environment:
XIAOJU_SURVEY_MONGO_URL: mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@xiaoju-survey-mongo:27017 # docker-compose 会根据容器名称自动处理
links:
Expand Down
4 changes: 4 additions & 0 deletions docker-run.sh
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
#! /bin/bash

# 启动nginx
nginx -g 'daemon on;'
# 启动后端服务
cd /xiaoju-survey/server
npm run start:prod
54 changes: 54 additions & 0 deletions nginx/nginx.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# 启动的 worker 进程数量
worker_processes auto;

# 错误日志路径和级别
error_log /var/log/nginx/error.log warn;

events {
# 最大连接数
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
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;
keepalive_timeout 65;
server {
listen 8080;
# IPv6端口
listen [::]:8080;
server_name localhost;
# gzip config
gzip on;
gzip_min_length 1k;
gzip_comp_level 9;
gzip_types text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml;
gzip_vary on;
gzip_disable "MSIE [1-6]\.";
root /xiaoju-survey/web/dist;

location / {
try_files $uri $uri /management.html;
}

location /management/ {
try_files $uri $uri/ /management.html;
}

location /render/ {
try_files $uri $uri/ /render.html;
}

location /api {
proxy_pass http://127.0.0.1:3000;
}

error_page 500 502 503 504 /500.html;
client_max_body_size 20M;
}

}

0 comments on commit 8061473

Please sign in to comment.