Nginx部署Https 443转发,配置方式和采坑记录

今天星期天,在家闲着,就想弄弄nginx。我用的Nginx版本为1.1.7。服务器为WindowsServer2019DataCenter。

之前在某个项目中由于跨域请求,用nginx 代理解决过。所以对nginx印象不错。实用的好工具。

1、首先去阿里云或者腾讯云申请一个免费一年的SSL证书。申请很快不需要钱。具体方式百度一堆。

2、现在证书在服务器上部署,根据你的Web容器有不同类型的证书。我这里下载的是Nginx版本的,因为我测试是在Nginx中拦截443进行其他内部转发,所以在Nginx中使用。

3、Nginx配置文件Conf配置项:

# HTTPS server
	server {
        listen 443 ssl http2;
        server_name www.XXXXX.cn;
        
        ssl_certificate     /cert/nginx/nginx_www.XXXXX.cn.pem;
        ssl_certificate_key /cert/nginx/nginx_www.XXXXX.cn.key;
        ssl_session_timeout 5m;
        ssl_protocols TLSV1 TLSv1.1 TLSv1.2;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_prefer_server_ciphers on;
         
        access_log logs/XXXXX/access.log;
        error_log  logs/XXXXX/error.log;
 
        location / {
            root   html;
            index  index.html index.htm;
        }             
 
        location /shop {
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade"; 
            proxy_pass_header Set-Cookie;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $host;
            proxy_redirect off;
 
            add_header Access-Control-Allow-Origin *;
            add_header Access-Control-Allow-Methods "POST, GET,PUT,DELETE, OPTIONS";
            add_header Access-Control-Allow-Headers "Origin, Authorization, Accept";
            add_header Access-Control-Allow-Credentials true;
            
 
            proxy_pass http://localhost:8092/;
        }
 
    }

配置过程中有几个地方需要注意的:

3.1、配置443拦

3.2、配置SSL证书的位置,这里的位置有点坑,一定要注意,当前在服务器上Nginx在C:/Nginx/ 目录中,证书在C:/Cert/目录中,但是经过几次测试,发现这个路径,不能写C:/Cert/XXX证书的路径,系统会提示:截的域名和方式,注意拦截域名。

BIO_new_file() failed (SSL: error:0200107B:system library:fopen:Unknown error:fopen

明显路径找不到,文件无法访问打开,如果将证书放到Nginx目录下面,写相对于Nginx.exe的路径,也是相同的提示。反正总是路径不对,无法方法。


后来经过查看Nginx启动报错日志,发现这个路径是相对于C:/ 的一个相对路径,从C盘根目录下配置,路径中无须保留C:/这样的字符,最后实验成功

参考文章:https://blog.csdn.net/ken_ding/article/details/78929551

3.3、日志配置路径相对于Nginx.exe路径,路径为全路径,中间有文件夹不存在的需要提前创建好,不然启动会报出异常。

经过上述步骤配置,启动Nginx后,用https 访问域名,会显示Nginx页面,说明拦截配置成功。


————————————————
版权声明:本文为CSDN博主「ltylove2007」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ltylove2007/article/details/107136902

4、配置转发内部网站,是用户访问系统时还是显示Htpps网站,并且是安全的。

location /shop {
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade"; 
            proxy_pass_header Set-Cookie;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $host;
            proxy_redirect off;
 
            add_header Access-Control-Allow-Origin *;
            add_header Access-Control-Allow-Methods "POST, GET,PUT,DELETE, OPTIONS";
            add_header Access-Control-Allow-Headers "Origin, Authorization, Accept";
            add_header Access-Control-Allow-Credentials true;
            
 
            proxy_pass http://localhost:8092/;
        }

关键地方标注:

4.1、拦截域名的子地址,这样能做到,一个域名下挂接多个子系统,并且都从这个域名下转发。

4.2、代理内部系统的转发方式,和跨域请求配置,这里看自己项目需要。

4.3、最后是关键的代理转发内部地址:配置内部系统配置,这里标注的以“/”结尾和不以“/”,差别很大,具体差别描述,看下面文章,这里不赘述了。总之带“/”,在直接转发了。没有拼接 shop/拦截地址,不带“/”,则在转发过程中会携带拦截的shop/ 进行一起转发。

参考文章:https://blog.csdn.net/Cz_csdn/article/details/104419708
————————————————

可以在自己内部系统访问方式上面加上/shop的虚拟路径就可以,完美解决转发后的路径问题了。

  • 15
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: Nginx 是一款轻量级的 Web 服务器软件,它的性能非常出色,可以处理大量的并发请求。以下是 Nginx部署配置步骤: 1. 下载 Nginx:可以到官网下载 Nginx 的源码包,也可以使用包管理器安装。 2. 安装 Nginx:如果使用源码包安装,解压后进入 Nginx 目录,执行以下命令: ``` ./configure make sudo make install ``` 如果使用包管理器安装,可以执行以下命令: ``` sudo apt-get update sudo apt-get install nginx ``` 3. 配置 NginxNginx配置文件位于 /etc/nginx/nginx.conf。可以通过修改配置文件来配置 Nginx。以下是一些常用的配置项: ``` http { server { listen 80; server_name example.com; location / { root /var/www/example.com; index index.html; } } } ``` 上面的配置项表示监听 80 端口,当访问 example.com 时,返回 /var/www/example.com 目录下的 index.html 文件。 4. 启动 Nginx:执行以下命令启动 Nginx: ``` sudo nginx ``` 如果成功启动,可以通过浏览器访问服务器的 IP 地址或域名,验证是否能够正常访问。也可以执行以下命令查看 Nginx 的状态: ``` sudo systemctl status nginx ``` 以上是 Nginx部署配置步骤,具体的配置需要根据实际需求进行调整。 ### 回答2: Nginx是一款轻量级的高性能Web服务器和反向代理服务器,在部署配置过程中,主要需要进行以下步骤: 1. 下载和安装Nginx:访问Nginx官方网站,下载适用于您的操作系统的Nginx安装包,并按照官方文档的指引进行安装。 2. 配置Nginx:默认情况下,Nginx配置文件位于"/etc/nginx/nginx.conf"。可以使用任何文本编辑器打开该文件,根据需求进行配置。 3. 配置虚拟主机:Nginx支持虚拟主机的配置,可以同时运行多个网站。在配置文件中,可以为每个虚拟主机设置独立的配置,包括域名、端口等信息。 4. 配置反向代理:Nginx的反向代理功能非常强大,可以将客户端的请求转发给后端服务器处理。在配置文件中,需要设置反向代理的目标服务器IP和端口。 5. 配置HTTPS:如果需要使用HTTPS协议进行安全连接,可以在配置文件中添加SSL证书的相关配置,并将HTTP请求转发HTTPS端口。 6. 优化性能:为了提高Nginx的性能,可以进行一些优化措施,例如调整worker进程数量、设置缓存等。 7. 重载配置:在完成配置文件的修改后,使用命令"nginx -s reload"重载配置文件,以使修改生效。 8. 监控和日志记录Nginx提供了丰富的监控和日志记录功能,可以通过配置文件设置相关选项,包括访问日志、错误日志等。 总的来说,Nginx部署配置相对简单,但需要根据实际需求进行相应的调整。熟练掌握Nginx配置语法和配置选项,可以帮助提高服务器的性能和安全性。 ### 回答3: Nginx是一个高性能的Web服务器和反向代理服务器,常用于搭建网站和提供静态资源服务。以下是Nginx部署配置过程: 1. 下载和安装Nginx:首先,需要从Nginx官方网站下载适合操作系统的安装包。然后解压安装包,将Nginx文件夹移动到指定位置。 2. 配置NginxNginx配置文件位于安装目录的`/etc/nginx/nginx.conf`。打开配置文件,可以根据需求进行修改。 3. 配置基本设置:在配置文件中,可以设置Nginx监听的端口,默认是80端口。还可以设置后台进程的运行用户和运行模式。 4. 配置虚拟主机:在配置文件中添加虚拟主机的配置块,可以实现多域名和多站点的支持。配置块包含域名、根目录和其他需要的参数。 5. 配置反向代理:如果需要使用Nginx作为反向代理服务器,可以在配置文件中添加`proxy_pass`指令,将请求转发到后端服务器上。 6. 配置负载均衡:如果需要实现负载均衡,可以使用`upstream`指令定义后端服务器的IP和端口,并在反向代理配置中使用该`upstream`。 7. 配置缓存和压缩:为了提高性能,可以将静态资源进行缓存和压缩。在配置文件中添加`proxy_cache`和`gzip`指令,启用缓存和压缩功能。 8. 重启Nginx:完成配置后,使用命令行执行`nginx -t`检查配置文件语法是否正确,然后再执行`nginx -s reload`重启Nginx服务。 9. 监控和调试:Nginx提供了丰富的监控指令和日志文件,可以通过查看日志定位问题并进行调试。可以使用命令行执行`tail -f /var/log/nginx/access.log`实时查看访问日志。 以上是Nginx部署配置过程。根据具体需求,可以根据配置文件中的不同参数进行灵活调整。Nginx具有高性能和可靠性,适用于大多数Web应用程序的部署

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值