# 配置代理

本项目网页端容器暴露了80端口,并通过配置文件docker-compose.yml映射到宿主机8080端口。 你可以在宿主机配置网络代理,以实现域名访问,以及https证书配置。

# 📡 nginx

# 安装nginx

apt update
apt install -y nginx

nginx默认自带80端口配置文件,为避免冲突,在生产环境中可以删除它

rm /etc/nginx/sites-enabled/default

# 以http方式配置域名

  1. 创建并编辑配置文件
vim /etc/nginx/conf.d/lduoj-http.conf
  1. 按下i后开始输入内容
server {
    listen 80;
    server_name www.lduoj.com;  # !!!替换为你的域名

    client_max_body_size 512m;   # 请求体大小上限
    client_body_buffer_size 1m;

    location / {
        proxy_pass http://127.0.0.1:8080/;
        proxy_redirect off;
        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;
    }
}
  1. ESC键,输入:wq后按下Enter,即可保存配置文件。
  2. 重启nginx使配置生效
sudo systemctl restart nginx

# 以https方式配置证书和域名

  1. 创建并编辑配置文件
vim /etc/nginx/conf.d/lduoj-https.conf
  1. 按下i后开始输入内容
server{
    listen 80;
    server_name www.lduoj.com;
    rewrite ^(.*)$  https://$host$1 permanent;  # 强制http转https
}

server {
    listen 443 ssl http2;
    server_name www.lduoj.com;  # !!!请替换为你的域名

    client_max_body_size 512m;  # 请求体大小上限
    client_body_buffer_size 1m;

    # ssl配置
    ssl_certificate     ./conf.d/fullchain.crt; # !!!替换成你的ssl证书路径,相对于/etc/nginx/
    ssl_certificate_key ./conf.d/private.pem;   # !!!同上
    ssl_protocols TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;

    location / {
        proxy_pass http://127.0.0.1:8080/;
        proxy_redirect off;
        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;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
  1. ESC键,输入:wq后按下Enter,即可保存配置文件。
  2. 重启nginx使配置生效
sudo systemctl restart nginx
上次更新: 4/4/2024, 8:40:36 AM