Nginx配置http和https

这篇具有很好参考价值的文章主要介绍了Nginx配置http和https。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

配置文件 默认放置位置:{nginx}/conf.d/,以conf结尾

一、http简单配置

server {
        listen       80;
        server_name  www.test.cn;
        root /mnt/website/ROOT;
        
        if ( $query_string ~* ".*[;'<>].*" ){
            return 404;
        }
        if ( $query_string ~* ".*script.*" ){
            return 404;
        }
 
        location ~* ^/WEB-INF/.*$
        {
         deny all;
        }

        location ~* ^/(UserFiles|userfiles|images|Images|upload)/.*\.(jsp|js)$
        {
         deny all;
        }

        location / {
             proxy_set_header Host $host;
             proxy_set_header X-Real-IP $remote_addr;
             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
             proxy_pass   http://127.0.0.1:8888;
        }
}
server{
	server_name test.cn;
	root /mnt/website/ROOT;
	location ^~ / {
             rewrite ^(.*) http://www.test.cn$1 permanent;
        }
}

说明:

1,http默认端口是80

2,http://127.0.0.1:8888;为实际本地服务端口

3,一般服务域名为二级域名www,一级域名一般也配置指向www域名。

二、https配置

首先得申请ssl证书,百度,阿里都有免费证书可用,申请成功后,下载nginx压缩包,解压后,可见两种后缀文件,一个是xxx.key,另一个是xxx.crt,或者是xxx.pem。文件名可以随意更改,一般改为域名。

其次是配置文件配置

server {
        listen       443;
        server_name  www.test.cn;
        root /mnt/website/ROOT;
	     ssl                  on;
       ssl_certificate      /etc/nginx/ssl/www.test.cn.crt;
       ssl_certificate_key      /etc/nginx/ssl/www.test.cn.key;
       ssl_session_timeout  5m;
       ssl_protocols  SSLv3 TLSv1;
       ssl_ciphers  HIGH:!ADH:!EXPORT56:RC4+RSA:+MEDIUM;
       ssl_prefer_server_ciphers   on;


        if ( $query_string ~* ".*[;'<>].*" ){
        return 404;
        }
        if ( $query_string ~* ".*script.*" ){
        return 404;
        }

        location ~* ^/imgPath/.*$
        {
         rewrite ^/imgPath(.*) http://img.test.cn/imgPath$1 last;
        }
      
        location ~* ^/WEB-INF/.*$
        {
         deny all;
        }

        location ~* ^/(UserFiles|userfiles|images|Images|upload)/.*\.(jsp|js)$
        {
         deny all;
        }
        location / {

            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass   http://127.0.0.1:8888;
        }
}

说明:

1,https端口为443,此端口不是服务器默认开放端口,需要单独打开。

2,ssl文件放置正确即可。crt文件换成pem文件亦可。

3,资源文件路径可指向其他域名,可见location ~* ^/imgPath/.*$这段

三、单域名指向本地不同服务,以https配置为例

upstream shop {
   server 127.0.0.1:7777;
}

server {
        listen       443;
        server_name  www.test.cn;
        root /mnt/website/ROOT;
	 ssl                  on;
       ssl_certificate      /etc/nginx/ssl/www.test.cn.crt;
       ssl_certificate_key      /etc/nginx/ssl/www.test.cn.key;
       ssl_session_timeout  5m;
       ssl_protocols  SSLv3 TLSv1;
       ssl_ciphers  HIGH:!ADH:!EXPORT56:RC4+RSA:+MEDIUM;
       ssl_prefer_server_ciphers   on;


        if ( $query_string ~* ".*[;'<>].*" ){
        return 404;
        }
        if ( $query_string ~* ".*script.*" ){
        return 404;
        }

        location ~* ^/imgPath/.*$
        {
         rewrite ^/imgPath(.*) http://img.test.cn/imgPath$1 last;
        }
      
        location ~* ^/WEB-INF/.*$
        {
         deny all;
        }

        location ~* ^/(UserFiles|userfiles|images|Images|upload)/.*\.(jsp|js)$
        {
         deny all;
        }
        location / {

            rewrite ^(.*) https://www.test.com$1 permanent;
        }

location /shop/ {
proxy_pass http://shop;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
proxy_buffer_size 128k;
proxy_buffers 2 256k;
proxy_busy_buffers_size 256k;
proxy_temp_file_write_size 256k;
}
    }

说明:

1,upstream shop,shop只能出现一次

2,可以是本地服务,亦可是其他ip服务,127.0.0.1换成对应ip即可

3,location /shop/ ,此块必须在server的区块内,/shop/为访问路径,即https://www.test.cn/shop/xxx,为访问路径文章来源地址https://www.toymoban.com/news/detail-405507.html

到了这里,关于Nginx配置http和https的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • nginx配置http请求转成https请求

    1、return 301 2、rewitre 3、error_page 原理: http和https是tcp的上层协议,当nginx服务器建立tcp连接后,根据收到的第一份数据来确定客户端是希望建立tls还是http。nginx会判断tcp请求的首写节内容以进行区分,如果是0x80或者0x16就可能是ssl或者tls,然后尝试https握手。如果端口开启了

    2024年02月07日
    浏览(44)
  • Nginx同时支持Http和Https的配置详解

    当配置Nginx同时支持HTTP和HTTPS时,需要进行以下步骤: 获得SSL证书:从可信任的证书颁发机构(CA)或使用自签名证书创建SSL证书。 将证书和私钥保存到服务器:将SSL证书和私钥文件保存到指定的位置,通常是 /etc/nginx/ssl/ 目录。 配置HTTP服务: 打开 Nginx 配置文件: 通常是

    2024年02月02日
    浏览(49)
  • Nginx配置springboot+vue项目http跳转https

    java生成证书 添加依赖 复制keystore到springboot资源目录,修改application.yml配置  启动项目 nginx配置 开启ssl     重启nginx -s reload 访问localhost:81将跳转到https://localhost/login?redirect=/index  

    2024年02月12日
    浏览(49)
  • nginx 同一个端口支持http和https配置

    原理:使用nginx的stream、 stream_ssl_preread模块 1.编译nginx 由于stream和stream_ssl_preread模块非默认引入,需要在编译安装nginx时引入;编译时添加配置参数 --with-stream --with-stream_ssl_preread_module ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-stream --with-stre

    2024年02月10日
    浏览(54)
  • Nginx配置同时支持http和https两种方式访问

    http: https: Nginx的ssl模块安装 进入到目录的sbin目录下,输入 如果出现 (configure arguments: --with-http_ssl_module), 则已安装(下面的步骤可以跳过,直接进行第五步)。 一般情况下都是不存在ssl模块的,接下来进入到你的解压缩后的nginx目录,注意这里不是nginx安装目录,是解压缩后

    2024年02月13日
    浏览(48)
  • nginx的同一个端口配置支持http与https协议

    http://www.baidu.com:5000 https://www.baidu.com:5000 请求自定义端口的http 跟https,都一样的页面 vim /opt/lucky/nginx/conf/vhosts/baidu.conf

    2024年02月13日
    浏览(60)
  • Nginx配置https网站访问第三方节点的http资源

    https网站无法直接下载http网站的文件。解决思路有以下几种情况:1.两个网站都同时改为http或https。2.通过nginx转发。3.通过后端java代码获取对方网站的文件流然后把流返回给前端 本文介绍如果通过nginx转发访问http网站 配置规则一: 这样配置之后,本地网站比如是:访问htt

    2024年02月16日
    浏览(49)
  • Minio nginx配置https和http问题解决,疑难症全网首发

    进入下面小程序可以体验效果 :   以下问题基本上是因为NGINX代理出现 一、API直接返回单独的错误: io.minio.errors.ErrorResponseException: Access denied 二、API直接返回的错误:The request signature we calculated does not match the si 三、预览文件或者图片返回错误 以上三个问题都属于Access den

    2024年02月13日
    浏览(50)
  • nginx配置若依框架vue打包项目(同时支持http和https)

    该配置模版主要是若依框架前后端配置,若只是配置普通的vue项目,直接复制一下小模块即可   #vue页面访问配置      location  / {              root /www/wwwroot/www.xxx.com;             # autoindex on;              try_files $uri $uri/ /index.html;              index  index.html index.htm

    2024年01月25日
    浏览(50)
  • SpringBoot+Vue前后端分离项目+云服务器(nginx配置http/https)

    目录 1.Java项目打包 2.前端项目打包 ok,项目准备好了,接下来就是服务器方面的操作了 3.服务器 1.点击控制台 2.找到 ECS云服务器 3.概览-我的资源  4.重置服务器密码  5.配置安全组 4.域名 1.买域名 2.备案  3.解析至服务器 31.控制台找到  3.2.域名列表 ,找到需要的域名,点击解析​

    2024年02月09日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包