Nginx 配置https 和 node多服务配置

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/Ruffaim/article/details/83931095

准备工作

  • 下载 SSL证书文件
  • 安装了 nginx 的服务器
  • 你的域名已经解析到目标服务器

证书安装

以腾讯云为例,SSL 的证书文件可以在你的控制台SSL管理后台查看并下载。
在这里插入图片描述

其他服务器配置可以参考 ssl证书安装指引
下载证书并解压 得到下列文件夹,将 nginx 文件夹之外的 其他不用的文件删除。
在这里插入图片描述

Nginx 文件夹用 scp 工具上传到你的服务器 ,windows上可以用 git 工具实现 scp 功能。

tar -cvf ssl.tar Nginx && scp ssl.tar root@ip:/etc/nginx/

nginx 根目录解压 ssl.tar 得到一个 ssl 文件夹

tar -xvf ssl.tar 

配置 /etc/nginx/nginx.conf 文件

server {
        listen 443;
        server_name www.你的域名.com; #填写绑定证书的域名
        ssl on;
        ssl_certificate /etc/nginx/ssl/1_www.你的域名.com_bundle.crt;
        ssl_certificate_key /etc/nginx/ssl/2_www.你的域名.com.key;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
        ssl_prefer_server_ciphers on;
        location / {
            root   html; #站点目录
            index  index.html index.htm;
        }
    }

检测 nginx.conf 文件配置和软重启 nginx

nginx -t
# nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
# nginx: configuration file /etc/nginx/nginx.conf test is successful 配置正常
nginx -s reload #软重启nginx

打开你的域名会看到nginx 的欢迎页面,如果没有,请检查配置和证书是否正常。


nginx 配置 node端口转发

现在有两套 RESTful API 部署在node 服务a服务b,分别监听在 端口 87653000,分别存在与

/home/ruff/a//home/ruff/b/ 文件夹

┌──────────┬────┬─────────┬──────┬──────┬────────┬─────────┬────────┬─────┬────────────┬──────┬──────────┐
│ App name │ id │ version │ mode │ pid  │ status │ restart │ uptime │ cpu │ mem        │ user │ watching │
├──────────┼────┼─────────┼──────┼──────┼────────┼─────────┼────────┼─────┼────────────┼──────┼──────────┤
│ app1     │ 0  │ 0.0.0   │ fork │ 4376 │ online │ 94      │ 3D     │ 0%  │ 55.9 MB    │ root │ disabled │
│ app2     │ 1  │ 0.0.1   │ fork │ 5506 │ online │ 0       │ 46h    │ 0%  │ 107.0 MB   │ root │ disabled │
└──────────┴────┴─────────┴──────┴──────┴────────┴─────────┴────────┴─────┴────────────┴──────┴──────────┘

现在我要配置将 https://www.你的域名.com的请求全部转发到 服务ahttps://www.你的域名.com/test/b
的请求转发到 服务b,同时配置两套vue.js 打包的管理后台的静态资源。
编辑 nginx.conf

events {
        worker_connections 768;
        # multi_accept on;
}

http{
    include mime.types;
        default_type  application/octet-stream;

        server {
                listen  80;
                server_name www.域名.com;
        		rewrite ^(.*)$  https://$host$1 permanent;
        		}

        server{
        		listen 443;
        		server_name www.域名.com;
        		ssl on;
        		ssl_certificate /etc/nginx/ssl/1_www.域名.com_bundle.crt;
        		ssl_certificate_key /etc/nginx/ssl/2_www.域名.com.key;

        		ssl_session_timeout 5m;
        		ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

        		ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        		ssl_prefer_server_ciphers on;
				
				#a api
        		location /{
        			proxy_pass http://localhost:8765;
        			}
        			
        		#a admin
       			location /a/admin {
       				root /home/ruff/a/admin/;
       				try_files /index.html =404;
       			}
       			
       			#a static 打包的线上版本找不到资源
				location /a/admin/static/ {
				    alias /home/ruff/a/admin/static/;
				}
				
                #b
    			location /test/b/ {
    				#url 重写
    				rewrite /test/b/(.*) /$1 break;
    				# 转发3000端口
                    proxy_pass http://127.0.0.1:3000;
                    proxy_set_header X-Real-Host $host;
        			proxy_set_header x-Real-IP $remote_addr;
        			proxy_set_header Host $host;
        		}
	            #资源转发
				location /assets/ {
         			alias /home/ruff/b/assets/;
         		}
				#b 静态资源   
				location /b/admin {
                	root /home/ruff/b/admin/;
                	try_files /index.html =404;
                }
        }
}

user www-data;
worker_processes auto;
pid /run/nginx.pid;

关于 nginx url rewrite 可以查看 Nginx URL重写(rewrite)配置及信息详解
如果nginx 启动中之后无法访问可以查看原因类似的 [华为云 ECS 安装 Nginx 的端口问题]。(https://blog.csdn.net/Ruffaim/article/details/83744611)

稍后更新。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Ruffaim/article/details/83931095
今日推荐