找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1981|回复: 0

使用Docker快速搭建Nginx用于反代

[复制链接]

80

主题

36

回帖

552

积分

管理员

积分
552
发表于 2024-6-20 10:02:33 | 显示全部楼层 |阅读模式
使用Docker快速搭建Nginx用于反代

  1. mkdir -p /opt/docker/nginx/logs
  2. mkdir -p /opt/docker/nginx/conf
  3. mkdir -p /opt/docker/nginx/vhosts
  4. mkdir -p /opt/docker/nginx/wwwroot
  5. mkdir -p /opt/docker/acme.sh
  6. docker run --name nginx-default-conf -p 6680:80 -d nginx


  7. docker cp  nginx-default-conf:/etc/nginx/conf.d/default.conf /opt/docker/nginx/conf/default.conf
  8. docker cp  nginx-default-conf:/usr/share/nginx/html/index.html /opt/docker/nginx/wwwroot/index.html
  9. docker cp  nginx-default-conf:/usr/share/nginx/html/50x.html /opt/docker/nginx/wwwroot/50x.html
  10. docker cp  nginx-default-conf:/etc/nginx/nginx.conf /opt/docker/nginx/nginx.conf
  11. docker stop nginx-default-conf
  12. docker rm nginx-default-conf
  13. docker run --name nginx -p 80:80 -p 443:443 --restart=unless-stopped -v /opt/docker/nginx/logs:/var/log/nginx -v /opt/docker/nginx/wwwroot:/usr/share/nginx/html -v /opt/docker/nginx/vhosts:/etc/nginx/conf.d -v /opt/docker/acme.sh:/acme.sh -d nginx
  14. cd /opt/docker/acme.sh
  15. openssl dhparam -out dhparams.pem 4096
复制代码
/opt/docker/nginx/vhosts中添加*.conf的文件创建虚拟主机




V2




  1. mkdir -p /opt/docker/nginx/wwwroot
  2. mkdir -p /opt/docker/nginx/vhosts
  3. mkdir -p /opt/docker/nginx/logs
  4. mkdir -p /opt/docker/acme.sh
  5. mkdir -p /opt/ssl/cf
  6. docker cp  nginx-default-conf:/etc/nginx /opt/docker
  7. docker cp  nginx-default-conf:/usr/share/nginx/html/index.html /opt/docker/nginx/wwwroot/index.html
  8. docker cp  nginx-default-conf:/usr/share/nginx/html/50x.html /opt/docker/nginx/wwwroot/50x.html
  9. docker stop nginx-default-conf
  10. docker rm nginx-default-conf

  11. docker run --name nginx -p 80:80 -p 443:443 --restart=unless-stopped -v /opt/docker/nginx/logs:/var/log/nginx -v /opt/docker/nginx/wwwroot:/usr/share/nginx/html -v /opt/docker/nginx:/etc/nginx -v /opt/docker/nginx/vhosts:/etc/nginx/conf.d/vhosts -v /opt/ssl/cf:/ssl -v /opt/docker/acme.sh:/acme.sh -d nginx
复制代码
vhosts反代demo



  1. server {
  2.     listen 80;
  3.     server_name sub.demo.la;

  4.     # if ($scheme = http ) {
  5.     #     return 301 https://$host$request_uri;
  6.     # }
  7.     #access_log  /home/wwwlogs/demo.la.log;

  8.     location / {
  9.         if ($host != 'sub.demo.la') {
  10.             return 301 https://demo.la;
  11.         }
  12.         proxy_pass http://your backend ip:7788/;
  13.         proxy_set_header Host sub.vps.la;
  14.         proxy_ssl_server_name on;
  15.         proxy_ssl_name sub.vps.la;
  16.         gzip_proxied any;
  17.         #sed -i "s/cdn.jsdelivr.net/us.demo.at/g" `grep -rl "cdn.jsdelivr.net" ./`
  18.         #proxy_set_header Host $host;
  19.         #proxy_set_header Host fastly.jsdelivr.net;
  20.         proxy_set_header Referer $http_referer;
  21.         proxy_set_header User-Agent $http_user_agent;
  22.         proxy_redirect off;
  23.         proxy_set_header X-Real-IP $remote_addr;
  24.         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  25.         proxy_set_header REMOTE-HOST $remote_addr;
  26.         add_header X-Cache $upstream_cache_status;
  27.         proxy_ignore_headers Set-Cookie Cache-Control expires;
  28.         #proxy_cache jsdelivr;
  29.         #proxy_cache_key $host$uri$is_args$args;
  30.         #proxy_cache_valid 200 365d;
  31.         #expires 365d;
  32.     }
  33. }

  34. server {
  35.     listen 443 ssl;
  36.     server_name sub.vps.la;

  37.     #ssl on;
  38.     ssl_certificate   /ssl/demo.la.pem;
  39.     ssl_certificate_key  /ssl/demo.la.key;
  40.     ssl_session_timeout 5m;
  41.     ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
  42.     ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  43.     ssl_prefer_server_ciphers on;


  44.     location / {
  45.         if ($host != 'sub.demo.la') {
  46.             return 301 https://demo.la;
  47.         }
  48.         proxy_pass http://your backend ip:7788/;
  49.         proxy_set_header Host sub.vps.la;
  50.         proxy_ssl_server_name on;
  51.         proxy_ssl_name sub.vps.la;
  52.         gzip_proxied any;
  53.         #sed -i "s/cdn.jsdelivr.net/us.demo.at/g" `grep -rl "cdn.jsdelivr.net" ./`
  54.         #proxy_set_header Host $host;
  55.         #proxy_set_header Host fastly.jsdelivr.net;
  56.         proxy_set_header Referer $http_referer;
  57.         proxy_set_header User-Agent $http_user_agent;
  58.         proxy_redirect off;
  59.         proxy_set_header X-Real-IP $remote_addr;
  60.         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  61.         proxy_set_header REMOTE-HOST $remote_addr;
  62.         add_header X-Cache $upstream_cache_status;
  63.         proxy_ignore_headers Set-Cookie Cache-Control expires;
  64.         #proxy_cache jsdelivr;
  65.         #proxy_cache_key $host$uri$is_args$args;
  66.         #proxy_cache_valid 200 365d;
  67.         #expires 365d;
  68.     }

  69. }
复制代码


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|整天BBB

GMT+8, 2026-3-18 05:54 , Processed in 0.086747 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表