我目前必须掌握一个困难的设置:我希望 nginx 提供 webcontent 并深度重定向到本地主机(本地应用程序)上带有更改后的帖子的内容。我希望每个请求都使用 nginx 功能和 letsEncrypt 的认证来使用 https。
到目前为止我已经取得了很多成就:
a) 认证已启动并运行,运行良好(据我所知)b) 网络服务器运行良好c) 一个子域名运行良好,其他所有子域名均运行良好
但我还是个初学者,感谢您为我指出的每一个改进。我还注意到重定向很慢而且容易出错,但我无法指出原因 :/。
让我们看一下相当大的配置(我向您展示了我的启用站点的配置):
服务器 { # 让攻击者更难知道我们还活着 听80; 服务器名称 ””; 返回444; }
所以这不应该是我们的问题......
服务器 { # 公司主页 如果 ($host = www.website.com) { 返回 301 https://$host$request_uri; } # 由 Certbot 管理 如果 ($host = website.com) { 返回 301 https://$host$request_uri; } # 由 Certbot 管理 # 项目管理 如果 ($host = pjm.website.com) { 返回 301 https://$host$request_uri; } # 由 Certbot 管理 # 组织发展看板 如果 ($host = organization.website.com) { 返回 301 https://$host$request_uri; } # 由 Certbot 管理 如果 ($host = org.website.com) { 返回 301 https://$host$request_uri; } # 由 Certbot 管理 # Web 开发看板 如果 ($host = development.website.com) { 返回 301 https://$host$request_uri; } # 由 Certbot 管理 如果 ($host = dev.website.com) { 返回 301 https://$host$request_uri; } # 由 Certbot 管理 # 营销开发看板 如果 ($host = marketing.website.com) { 返回 301 https://$host$request_uri; } # 由 Certbot 管理 如果 ($host = mkt.website.com) { 返回 301 https://$host$request_uri; } # 由 Certbot 管理 # 销售发展看板 如果 ($host = sales.website.com) { 返回 301 https://$host$request_uri; } # 由 Certbot 管理 如果 ($host = sls.website.com) { 返回 301 https://$host$request_uri; } # 由 Certbot 管理 听80; 服务器名称所有上述服务器名称均无失败; 返回 404;#由 Certbot 管理 } 服务器 { 服务器名称 website.com www.website.com; 根/media/data/webserver/website.com; 索引 index.html index.htm; 地点 / { 尝试文件$uri $uri/ =404; } listen 443 ssl; # 由 Certbot 管理 ssl_certificate /etc/letsencrypt/live/website.com/fullchain.pem; # 由 Certbot 管理 ssl_certificate_key /etc/letsencrypt/live/website.com/privkey.pem; # 由 Certbot 管理 包括 /etc/letsencrypt/options-ssl-nginx.conf; #由 Certbot 管理 ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # 由 Certbot 管理 }
这个好像也挺常用的,所以我觉得还可以(是吗?)。网站运行很顺畅,这里没有问题。
现在进行反向代理的配置:
服务器 { 服务器名称 pjm.website.com; 地点 / { proxy_set_header 主机 $host; proxy_set_header X-真实IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # 修复“看来你的反向代理设置已损坏”错误。 代理通过 http://localhost:1030; 代理读取超时90; 代理重定向 http://localhost:1030 https://pjm.website.com; } listen 443 ssl; # 由 Certbot 管理 ssl_certificate /etc/letsencrypt/live/website.com/fullchain.pem; # 由 Certbot 管理 ssl_certificate_key /etc/letsencrypt/live/website.com/privkey.pem; # 由 Certbot 管理 包括 /etc/letsencrypt/options-ssl-nginx.conf; #由 Certbot 管理 ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # 由 Certbot 管理 }
PJM 服务也可用。但是它很慢,有时应用程序会提示您重新加载。...
服务器 { 服务器名称组织.website.com; 地点 / { proxy_set_header 主机 $host; proxy_set_header X-真实IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # 修复“看来你的反向代理设置已损坏”错误。 代理通过 http://localhost:1030/ORG/ST; 代理读取超时90; 代理重定向 http://localhost:1030/ORG/ST https://organization.website.com; } listen 443 ssl; # 由 Certbot 管理 ssl_certificate /etc/letsencrypt/live/website.com/fullchain.pem; # 由 Certbot 管理 ssl_certificate_key /etc/letsencrypt/live/website.com/privkey.pem; # 由 Certbot 管理 包括 /etc/letsencrypt/options-ssl-nginx.conf; #由 Certbot 管理 ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # 由 Certbot 管理 }
但是这项服务不起作用。不过,我可以通过访问 pjm 并逐步完成操作来获得它,这很繁琐。
如何解决这一问题?