1.前言
昨天搞完了阳光沙滩博客管理中心项目。按照教程步骤,完成了部署,一切都很顺利。但是,输入域名访问时,默认使用的是80端口。也就是http。所以浏览器总说不安全。虽然影响不大,但是有点别扭。正好前几天看到网站有个名叫 ++cheer++的小伙伴弄的阿里云的http转https。所以参考他的方法,并进行了一些加工。 声明:本人非专业,本文提到的方法,作者使用时是可行的。但是里面难免有纰漏,或者错误什么的。
2.解决方案
2.1下载与上传证书
我使用的是腾讯云。进入控制台。找到SSL,点击申请免费证书。然后下载下来.

下载后,是一个压缩包,解压。

选择Nginx文件夹下的两个文件,复制,使用xftp上传到你的服务器。在上传之前,先在服务器上创建一个docker文件夹,在docker下再创建nginx文件夹,在nginx下再创建conf,logs,ssl,wwwroot文件夹。将刚才的两个文件复制到ssl里面。

2.2修改配置文件
在conf文件夹下创建一个nginx.conf文件。文件内容如下:
user  nginx;
worker_processes  1;
error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;
events {
    worker_connections  1024;
}
http {
	#博客服务器,多个可以实现负载均衡
    upstream sob-blog{
	   server lolxiaoguo.cn:2020 weight=1;
    }
 
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;
    sendfile        on;
    #tcp_nopush     on;
    keepalive_timeout  65;
    #gzip  on;
	server {
	
		if ($server_port = 80){
		return 301 https://lolxiaoguo.cn$request_uri;}
		if ($scheme = http){
		return 301 https://lolxiaoguo.cn$request_uri;}
		error_page 497 https://lolxiaoguo.cn$request_uri;
				
	}
	 server{
		listen        443 ssl ;
		server_name  lolxiaoguo.cn;
		 # 增加ssl
    		#ssl on;        #如果强制HTTPs访问,这行要打开
    		ssl_certificate /etc/nginx/ssl/1_www.lolxiaoguo.cn_bundle.crt;
    		ssl_certificate_key /etc/nginx/ssl/2_www.lolxiaoguo.cn.key;
	 	
    		ssl_session_cache    shared:SSL:1m;
    		ssl_session_timeout  5m;
     		# 指定密码为openssl支持的格式
     		ssl_protocols  SSLv2 SSLv3 TLSv1.2;
     		ssl_ciphers  HIGH:!aNULL:!MD5;  # 密码加密方式
     		ssl_prefer_server_ciphers  on;   # 依赖SSLv3和TLSv1协议的服务器密码将优先于客户端密码
		#charset koi8-r;
		#access_log  /var/log/nginx/host.access.log  main;
		#用户相关的请求,转到sob-blog
		location ^~/user/ {
            proxy_pass   http://sob-blog;
			#以下是一些反向代理的配置可删除
			proxy_redirect             off; 
			#后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
			proxy_set_header           Host $host;
			proxy_set_header 		   Cookie $http_cookie;
			proxy_set_header           X-Real-IP $remote_addr; 
			proxy_set_header           X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_set_header           HTTP_X_FORWARDED_FOR $remote_addr;
			proxy_set_header           X-Forwarded-Server $host;
        }
        
		location ^~/admin/ {
           	 proxy_pass   http://sob-blog;
			#以下是一些反向代理的配置可删除
			proxy_redirect             off; 
			#后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
			proxy_set_header           Host $host;
			proxy_set_header 		   Cookie $http_cookie;
			proxy_set_header           X-Real-IP $remote_addr; 
			proxy_set_header           X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_set_header           HTTP_X_FORWARDED_FOR $remote_addr;
			proxy_set_header           X-Forwarded-Server $host;
        }
        
        location ^~/portal/ {
           	 proxy_pass   http://sob-blog;
			#以下是一些反向代理的配置可删除
			proxy_redirect             off; 
			#后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
			proxy_set_header           Host $host;
			proxy_set_header 		   Cookie $http_cookie;
			proxy_set_header           X-Real-IP $remote_addr; 
			proxy_set_header           X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_set_header           HTTP_X_FORWARDED_FOR $remote_addr;
			proxy_set_header           X-Forwarded-Server $host;
        }
		#其他访问访问根目录wwwroot
		location / {
		    root   /usr/share/nginx/html;
			index  index.html index.htm;
		}
	}
	
}
2.3创建容器
docker run -d --name=sob-nginx -p 80:80 -p 443:443 \
-v /home/ubuntu/docker/nginx/wwwroot:/usr/share/nginx/html \
-v /home/ubuntu/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /home/ubuntu/docker/nginx/logs:/var/log/nginx \
-v /home/ubuntu/docker/nginx/ssl:/etc/nginx/ssl nginx
nginx
至此就可以使用https访问,输入域名也会跳转到https访问。
我的部署网址:lolxiaoguo.cn。




 宿夜星辰叹  回复 @断点-含光君
 宿夜星辰叹  回复 @断点-含光君 
 拉大锯  回复 @cib
 拉大锯  回复 @cib 




























