【注意】最后更新于 May 22, 2019,文中内容可能已过时,请谨慎使用。
之前买了一个虚拟主机, 想着没事做个博客玩一下。 刚好最近在学习docker。 就想着使用docker来部署我的站点。 想着后面可能会将多个域名只想这台主机(也许最后只有一个域名), 就想折腾一下。
当前主流的WEB服务是 Apache和Nginx。 听说Ngnix,功能比较多,工作中接触比较少,就选Ngnix。 嗯,我对比了解的技术还是有很强的好奇心的(no zuo no die)。
Nginx 多域名代理
首先上我的配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name test.jeffreysun.net;
location / {
proxy_pass http://172.25.0.133;
}
}
server {
listen 80;
server_name blog.jeffreysun.net;
location / {
proxy_pass http://172.25.0.134;
}
}
}
|
解释一下:
在这里我准备启动三个容器,一个代理容器和两个web容器。地址分别是是 172.25.0.132/172.25.0.133/172.25.0.134。 把代理的端口暴露出来,其他的容器不暴露端口, 所有的请求通过代理转发到内部子网。
代理可以通过配置,将不同域名的请求转发到不同的容器,完成我的需求。
Nginx Https 配置
最近 网页不做Https浏览器都会报出警告,有时间就去申请一下免费的ssl证书。
申请免费的SSL证书,网上有很多的地方可以申请,例如 腾讯云/阿里云等。
现在看一下我的配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name test.jeffreysun.net blog.jeffreysun.net;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name test.jeffreysun.net;
ssl on;
ssl_certificate /etc/letsencrypt/live/test.jeffreysun.net_bundle.crt;
ssl_certificate_key /etc/letsencrypt/live/test.jeffreysun.net.key;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://172.25.0.133;
}
}
server {
listen 443 ssl;
server_name blog.jeffreysun.net;
ssl on;
ssl_certificate /etc/letsencrypt/live/blog.jeffreysun.net_bundle.crt;
ssl_certificate_key /etc/letsencrypt/live/blog.jeffreysun.net.key;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://172.25.0.134;
}
}
}
|