Linux中通过nginx代理域名并配置SSL证书

发布于:2024-12-18 ⋅ 阅读:(129) ⋅ 点赞:(0)

Linux中通过Nginx代理域名

1.首先要找到nginx的安装目录,找到nginx.conf配置文件
在这里插入图片描述
2.可已经此配置文件进行复制备份,命令:cp nginx.conf nginx.conf.20241207,命令解析:
nginx 当前文件名 复制后的文件名
3.然后执行sz nginx.conf将文件导出到我们电脑本地,方便修改。
4. 然后我们找到server域进行以下修改
在这里插入图片描述
实例代码:

server {
        listen       80; #要监听的端口
        server_name  ailibrary.fun; #自己的域名
		#把http的域名请求转成https
		return 301 https://$host$request_uri; 


        location / {
            root   /home/xyh/project/xiyunhai/vue;  # 将此路径替换为你实际的Vue项目构建后静态文件所在目录,例如/home/user/ailibrary/dist
            index  index.html index.htm;
            try_files $uri $uri/ /index.html;  # 用于处理Vue项目的路由模式,确保刷新页面时能正确加载页面
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /srv/iperror;  # 这里可以自定义错误页面所在的根目录,也可根据实际需求调整
        }
    }

5.配置好后,最后将文件再上传回去命令:rz
6.重启nginx,命令:
Ubuntu 系统:使用命令

 sudo systemctl restart nginx

CentOS 系统:执行命令

 sudo service nginx restart

7.查看nginx是否已经启动,可以使用ps命令来查看是否有 Nginx 相关的进程在运行。

ps -ef | grep nginx

8.这时候我们就可以在页面通过域名进行访问了

在Nginx中配置SSL证书

腾讯云ssl证书部署API:https://www.tencentcloud.com/zh/document/product/1007/30954
1.首先需要手动进行部署ssl证书,去下载ssl证书
在这里插入图片描述
2.然后对下载的文件解压,需要将已获取到的 cloud.tencent.com_bundle.crt 证书文件和cloud.tencent.com.key 私钥文件从本地目录拷贝到 Nginx 服务器的 /etc/nginx 目录(此处为 Nginx 默认安装目录,请根据实际情况操作)下。
如找不到以下内容,可以手动添加。可执行命令 nginx -t ,找到nginx的配置文件路径。
如下图示例:
在这里插入图片描述
此操作可通过执行 vim /etc/nginx/nginx.conf 命令行编辑该文件。
腾讯云示例代码:

server {
     #SSL 默认访问端口号为 443
     listen 443 ssl; 
     #请填写绑定证书的域名
     server_name cloud.tencent.com; 
     #请填写证书文件的相对路径或绝对路径
     ssl_certificate cloud.tencent.com_bundle.crt; 
     #请填写私钥文件的相对路径或绝对路径
     ssl_certificate_key cloud.tencent.com.key; 
     ssl_session_timeout 5m;
     #请按照以下协议配置
     ssl_protocols TLSv1.2 TLSv1.3; 
     #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
     ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
     ssl_prefer_server_ciphers on;
     location / {
         #网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
         #例如,您的网站主页在 Nginx 服务器的 /etc/www 目录下,则请修改 root 后面的 html 为 /etc/www。
         root html; 
         index  index.html index.htm;
     }
 }

本机自己的示例代码:

server {
     #SSL 默认访问端口号为 443
     listen 443 ssl; 
     #请填写绑定证书的域名
     server_name ailibrary.fun; 
     #请填写证书文件的相对路径或绝对路径
     ssl_certificate ailibrary.fun_bundle.crt; 
     #请填写私钥文件的相对路径或绝对路径
     ssl_certificate_key ailibrary.fun.key; 
     ssl_session_timeout 5m;
     #请按照以下协议配置
     ssl_protocols TLSv1.2 TLSv1.3; 
     #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
     ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
     ssl_prefer_server_ciphers on;
     location / {
         #网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
         #例如,您的网站主页在 Nginx 服务器的 /etc/www 目录下,则请修改 root 后面的 html 为 /etc/www。
         root /home/xyh/project/xiyunhai/vue; 
         index  index.html index.htm;
     }
 }

3.编辑完成后通过一下命令验证配置文件是否有问题

nginx -t

4.通过执行以下命令重载 Nginx。

nginx -s reload

将 HTTP 请求自动重定向到 HTTPS

在页面中添加 JS 脚本。
在后端程序中添加重定向。
通过 Web 服务器实现跳转。
Nginx 支持 rewrite 功能。若您在编译时没有去掉 pcre,您可在 HTTP 的 server 中增加 return 301 https:// h o s t host hostrequest_uri;,即可将默认80端口的请求重定向为 HTTPS。修改如下内容:
腾讯云示例代码:

  server {
   #SSL 默认访问端口号为 443
   listen 443 ssl;
   #请填写绑定证书的域名
   server_name cloud.tencent.com; 
   #请填写证书文件的相对路径或绝对路径
   ssl_certificate  cloud.tencent.com_bundle.crt; 
   #请填写私钥文件的相对路径或绝对路径
   ssl_certificate_key cloud.tencent.com.key; 
   ssl_session_timeout 5m;
   #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
   ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
   #请按照以下协议配置
   ssl_protocols TLSv1.2 TLSv1.3;
   ssl_prefer_server_ciphers on;
   location / {
     #网站主页路径。此路径仅供参考,具体请您按照实际目录操作。 
     #例如,您的网站主页在 Nginx 服务器的 /etc/www 目录下,则请修改 root 后面的 html 为 /etc/www。
     root html;
     index index.html index.htm;
   }
  }
  server {
   listen 80;
   #请填写绑定证书的域名
   server_name cloud.tencent.com; 
   #把http的域名请求转成https
   return 301 https://$host$request_uri; 
  }

主要添加的内容看一下示例图:
在这里插入图片描述
本机自己的示例代码:

server {
        listen       80;
        server_name  ailibrary.fun;
		#把http的域名请求转成https
		return 301 https://$host$request_uri; 


        location / {
            root   /home/xyh/project/xiyunhai/vue;  # 将此路径替换为你实际的Vue项目构建后静态文件所在目录,例如/home/user/ailibrary/dist
            index  index.html index.htm;
            try_files $uri $uri/ /index.html;  # 用于处理Vue项目的路由模式,确保刷新页面时能正确加载页面
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /srv/iperror;  # 这里可以自定义错误页面所在的根目录,也可根据实际需求调整
        }
    }

2.通过执行以下命令验证配置文件问题。

nginx -t

3.通过执行以下命令重载 Nginx。

nginx -s reload

4.重载成功后就可以通过域名进行访问了


网站公告

今日签到

点亮在社区的每一天
去签到