基于Nginx实现三级域名访问和https访问
Nginx实现三级域名访问
我的VPS上部署了MPOOM工作台、个人博客、文件共享平台三个系统,并且在阿里云平台购买了域名,想要通过nginx实现不同的三级域名访问不同的系统,例如:
MPOOM工作台:http://www.mpoon.cn
个人博客: http://blog.mpoom.cn
文件共享平台:http://m.mpoom.cn
ps:如果域名要解析到国内云服务器,域名要提前在工信部进行备案,但是如果解析到国外,则没有这个限制.
配置文件mpoom.conf如下:
# mpoom工作台
server {
listen 80;
server_name mpoom.cn www.mpoom.cn;
location / {
proxy_pass http://127.0.0.1:8090;
}
}
# 个人博客
server {
listen 80;
server_name blog.mpoom.cn;
set $root_path "/usr/local/webserver/blog/public";
#charset koi8-r;
access_log /home/running/blog/blog-logs/host.access.log;
error_log /home/running/blog/blog-logs/error.log;
# 个人博客系统是由hexo生成的静态页面
location / {
root $root_path;
index index.html index.htm;
}
}
# 文件共享平台
server {
listen 80;
server_name m.mpoom.cn;
set $root_path "/home/running/web/open-web/";
#charset koi8-r;
access_log /home/running/web/openweb-logs/host.access.log;
error_log /home/running/blog/blog-logs/error.log;
location / {
root $root_path;
index index.html index.htm;
}
location ~ ^/service/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Cookie $http_cookie;
proxy_cookie_path /service/ /;
proxy_buffering off;
proxy_connect_timeout 300s;
proxy_send_timeout 300s;
proxy_read_timeout 300s;
proxy_pass http://127.0.0.1:9000;
}
}
工作台和文件共享平台进行了前后端分离,且两者共用后台系统,前端使用nginx作为服务器,后台使用nginx作为反向代理服务器。
然后在nginx主配置文件nginx.conf的http模块引入上面mpoom.conf配置文件
include /etc/nginx/conf.d/mpoom.conf;
Nginx实现https访问
为保障MPOOM工作台访问安全性,且在阿里云购可以购买免费的SSL证书,所以决定使用https来进行访问。
Nginx服务器安装SSL证书步骤如下
在阿里云购买免费的SSL证书,验证通过后,下载Nginx版本证书。
进入nginx安装目录下的conf目录,在conf目录下创建cert目录,将下载解压后的证书上传到cert目录,下载到本地的证书压缩文件包解压后包含:
- .crt文件:是证书文件,crt是pem文件的扩展名。
- .key文件:证书的私钥文件。
在nginx配置文件的http模块下新增一个server模块,配置如下:
server { listen 443; server_name mpoom.cn; ssl on; ssl_certificate cert/***_www.mpoom.cn.pem; ssl_certificate_key cert/***_www.mpoom.cn.key; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; location / { proxy_pass http://127.0.0.1:8090; } }
强制http跳转至https,将工作台的server模块更新为如下:
server { listen 80; server_name mpoom.cn www.mpoom.cn; return 301 https://www.mpoom.cn$request_uri; }
重启nginx。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 逐光の博客!
评论