Ant*_*ony 5 nginx reverse-proxy subdomain
我目前在我的服务器上设置了 nginx my.server.com
。使用当前配置,我使用http://my.server.com/app1
或访问不同的应用程序http://my.server.com/app2
。
我有一个这样的apps.conf
位置:/etc/nginx/sites-enabled/
upstream app1_servers {
server 172.12.11.10:8080;
}
upstream app2_servers{
server 172.12.11.10:9090;
}
server {
listen 80;
server_name my.server.com;
return 301 https://my.server.com/$request_uri; #force https
}
server {
listen 443;
ssl on;
ssl_certificate /etc/ssl/my.server.com/cert.pem;
ssl_certificate_key /etc/ssl/my.server.com/priv.pem;
server_name my.server.com;
location /app1 {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-Proto https;
proxy_pass http://app1_servers/app1;
proxy_redirect http://$host https://$host;
proxy_set_header Host $host;
}
location /app2 {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-Proto https;
proxy_pass http://app2_servers/app2;
proxy_redirect http://$host https://$host;
proxy_set_header Host $host;
}
}
Run Code Online (Sandbox Code Playgroud)
问题
上面的效果很好。但是,现在我想改变访问app1
和 的方式app2
。我想在仍然保持强制 ssl 并执行以下操作的同时http://app1.my.server.com
访问它们http://app2.my.server.com
proxy_pass
我需要进行哪些配置更改才能使其生效?此外,我想将每个应用程序的配置设置保留在其单独的文件中。
这应该很容易。您只需为每个子域创建服务器块,获取子域的 SSL 证书(除非主证书是通配符证书),然后通过一些调整复制适用的位置块。
像这样的东西应该可以工作,尽管我还没有测试过它,所以它几乎肯定需要一些调整。
server {
listen 80;
server_name app1.server.com;
return 301 https://app1.server.com/$request_uri; #force https
}
server {
listen 443;
ssl on;
ssl_certificate /etc/ssl/app1.server.com/cert.pem; # changed
ssl_certificate_key /etc/ssl/app1.server.com/priv.pem; # changed
server_name app1.server.com; # changed
location / { # changed
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-Proto https;
proxy_pass http://app1_servers/app1;
proxy_redirect http://$host https://$host;
proxy_set_header Host $host;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3899 次 |
最近记录: |