WindowServer服务器中Nginx配置https及http访问

WindowServer服务器中Nginx配置https及http访问

一、需求分析

大家有没有遇到过下面这种情况:

服务器上部署项目后,微信小程序发布后需要配置Https才能访问项目,但此服务器上的443端口已被占用

在这里插入图片描述

一、解决思路

1、在服务器上配置反向代理。(思路,还未测试)
2、项目部署在B服务器上,配置A服务器的nginx转发请求到A服务器。(已测试通过)

三、尝试方法

3.1、方法一:反向代理

3.1.1、修改Nginx配置文件(nginx.conf),使其支持SSL,并将监听的端口改为8081

server {
	listen       8081 ssl;
	server_name  yourdomain.com;
	ssl_certificate      /path/to/yourdomain.pem; 
	ssl_certificate_key  /path/to/yourdomain.key;
	location / {
		proxy_pass http://localhost:8080;
	}
}

3.1.2、开通服务器和防火墙的8081端口,使用反向代理将所有80和443端口的流量重定向到8081端口。
在Nginx配置文件(nginx.conf)中添加以下内容,并重启Nginx服务:

server {
	listen 80;
	server_name yourdomain.com;
	return 301 https://hosthostrequest_uri;
}

server {
	listen 443 ssl;
	server_name yourdomain.com;
	ssl_certificate      /path/to/yourdomain.pem;
	ssl_certificate_key  /path/to/yourdomain.key;
	return 301 https://hosthostrequest_uri;
}

名词解释:
listen:Nginx:监听的端口号
server_name:网站的域名
ssl_certificate和ssl_certificate_key分别表示SSL证书和密钥的路径
location / {} :表示所有请求都会被代理到本地的8080端口
return 301:表示重定向到HTTPS协议。

注:
通过以上配置,就能够在Win服务器上配置Nginx监听HTTPS请求并且监听8081端口,而访问时不需要带端口号。同时,通过反向代理将所有80和443端口的流量重定向到8081端口,从而避免了端口冲突的问题。

3.2、方法二:配置A服务器转发访问B服务器

3.2.1、在B服务器上配置tomcat项目以侦听一个端口(例如8080)。
3.2.2、配置A服务器上的Nginx文件,侦听443端口并使用SSL证书来启用https。

server {
    listen 443 ssl;
    server_name example.com;

    # SSL证书配置
    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/cert.key;

    # 代理tomcat项目的配置
    location /项目名1/ {
        proxy_pass http://B_SERVER_IP:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto https;
    }
	location /项目名2/ {
        proxy_pass http://B_SERVER_IP:8081;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto https;
    }
}

名词解释:
example.com:替换为您的域名,将/path/to/cert.pem和/path/to/cert.key替换为您的证书路径。将B_SERVER_IP替换为B服务器的IP地址。
listen:Nginx监听的端口号
server_name:网站的域名
ssl_certificate和ssl_certificate_key:分别表示SSL证书和密钥的路径
B_SERVER_IP:替换为B服务器的IP地址

注:
以上配置,可以通过https://example.com/tomcat来访问B服务器上的tomcat项目。
nginx将转发所有请求从A服务器到B服务器,而访问者将在https加密的连接下访问tomcat项目。

一个在学习的开发者,勿喷,欢迎交流

你可能感兴趣的:(Nginx,nginx,https,服务器)