如何在同一台服务器用nginx配置反代，让多个项目都可以用80端口访问，nginx及其它项目都在docker环境。
安装docker安装nginx docker在nginx容器中创建反代配置文件-->在容器环境中#创建反代配置文件 vi /etc/nginx/sites-available/reverse-proxy 或者： vi /etc/nginx/sites-enabled/reverse-proxy #配置如下 server { listen 80;//宿主机端口，也就是nginx容器的80端口 server_name example1.com;//可以是子域名 location / { proxy_pass http://localhost:80;//注意是容器的ip和端口，不是宿主机的(注意：容器使用宿主机未被占用的端口即可，不一定必须是80端口，只需要容器内项目暴露的端口是80就可以了) proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } server { listen 80; server_name example2.com;//可以是子域名 location / { proxy_pass http://localhost:80;//注意是容器的ip和端口，不是宿主机的 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } nginx -t 检查配置是否有效service nginx reload 重启nginx以上配置后就可以用字域名的80端口访问项目了，下一步需要配置证书，使用https的方式访问特别注意：在构建nginx容器时务必同时暴露80和443端口，否则无法配置SSL配置SSL(在nginx容器中进行配置)Certbot 申请证书过程要在运行在 Docker 中的 Nginx 中配置两个项目都使用 HTTPS，您可以按照以下步骤进行配置：准备 SSL 证书：对于每个项目，您需要准备正确的 SSL 证书。如果您使用 Let's Encrypt，可以使用 Certbot 工具为每个项目获取证书。确保证书存储在主机上，并且您可以在 Nginx 配置中引用它们。certbot --nginx -d <your_domain>在_/etc/nginx/sites-enabled_目录下(没有就创建)为每个项目创建 Nginx 配置文件：在 Nginx 宿主机上，为每个项目创建一个独立的 Nginx 配置文件。假设您有两个项目，分别为 Project1 和 Project2，可以创建两个配置文件，例如 project1.conf 和 project2.conf。project1.conf配置：server { listen 80; server_name project1.example.com; return 301 https://$host$request_uri; } server { listen 443 ssl; server_name project1.example.com; ssl_certificate /etc/letsencrypt/live/project1.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/project1.example.com/privkey.pem; # 其他 SSL 配置 location / { proxy_pass http://172.17.0.3:80; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; # 其他代理设置 } } 请确保替换 project1.example.com 和 project2.example.com 为您的实际域名，并将 SSL 证书和私钥的路径替换为正确的路径。修改nginx.conf在http块最后添加：include /etc/nginx/sites-enabled/*;nginx -t 检查配置文件是否正确service nginx reload重启nginx现在，您应该可以通过 HTTPS 访问两个项目，每个项目都有自己的 SSL 证书和独立的 Nginx 配置。项目1通过 https://project1.example.com 访问，项目2通过 https://project2.example.com 访问。nginx容器中:#nginx默认网页目录： /usr/share/nginx/html #nginx默认配置目录： /etc/nginx/nginx.conf如果单独的前端项目部署到nginx默认目录(容器的nginx)，然后配置SSL，nginx配置文件可以参考如下方式写：server { listen 80; server_name your domain; return 301 https://$host$request_uri; } server { listen 443 ssl; server_name your domain; ssl_certificate /etc/letsencrypt/live/your domain/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/your domain/privkey.pem; location / { root /usr/share/nginx/html; try_files $uri /index.html; } }当服务器443端口不可用时，web服务需要用到443端口，如何处理在Cloudflare上开启橙色云proxy，然后SSL启用FULL,如果不启用FULL,由于服务器开启了ssl，Flexible模式会被服务器拒绝，浏览器访问时会出现重定向次数过多提示！当遇到无法上传大文件的时候，nginx web配置文件增加以下配置server { ... client_max_body_size 0; ... }
caddy配置文件默认路径：/etc/caddy/Caddyfileyourdomain:443 { reverse_proxy localhost:9001 }reverse_proxy后面跟本地主机和服务端口，比如docker容器的宿主机端口