Nginx配置http和https的实现步骤

 更新时间:2024年03月29日 09:19:47   作者:冬山兄  
Nginx是使用最多的代理服务器之一,本文主要介绍了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,为访问路径

到此这篇关于Nginx配置http和https的实现步骤的文章就介绍到这了,更多相关Nginx配置http和https内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 在Nginx浏览器中打开目录浏览功能

    在Nginx浏览器中打开目录浏览功能

    这篇文章主要介绍了在Nginx浏览器中打开目录浏览功能,Nginx的目录浏览功能默认情况下被关闭需要手动打开,需要的朋友可以参考下
    2015-07-07
  • 基于Xen的VPS ubuntu+nginx+php安装教程

    基于Xen的VPS ubuntu+nginx+php安装教程

    跟踪vps已经很久了,但是因为需要特殊端口开服务,所以符合条件的多为Xen平台的vps。众多比较之后选择了vpslink在西雅图机房,速度还不错。
    2010-07-07
  • Nginx反向代理之proxy_redirect指令的实现

    Nginx反向代理之proxy_redirect指令的实现

    proxy_redirect指令是用来重置头信息中的"Location"和"Refresh"的值,本文就来详细的介绍一下如何使用,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-08-08
  • Nginx实现TCP端口的侦听及转发操作步骤

    Nginx实现TCP端口的侦听及转发操作步骤

    这篇文章主要介绍了Nginx实现TCP端口的侦听及转发的相关资料,文章介绍了如何使用Nginx进行TCP代理(四层代理)来处理MQTT的集群需求,包括配置Nginx支持stream模块、编写TCP代理配置文件以及重新加载Nginx以应用更改,需要的朋友可以参考下
    2024-11-11
  • Nginx配置PHP的Yii与CakePHP框架的rewrite规则示例

    Nginx配置PHP的Yii与CakePHP框架的rewrite规则示例

    这篇文章主要介绍了Nginx配置PHP的Yii与CakePHP框架的rewrite规则示例,是这两款高人气框架使用Nginx的关键配置点,需要的朋友可以参考下
    2016-01-01
  • Nginx配置文件详解以及优化建议指南

    Nginx配置文件详解以及优化建议指南

    Nginx是一款面向性能设计的HTTP服务器,相较于Apache、lighttpd具有占有内存少,稳定性高等优势,下面这篇文章主要给大家介绍了关于Nginx配置文件详解以及优化的相关资料,需要的朋友可以参考下
    2021-09-09
  • Nginx七层负载均衡的实现示例

    Nginx七层负载均衡的实现示例

    七层负载均衡它是在应用层,那么它可以完成很多应用方面的协议请求,本文主要介绍了Nginx七层负载均衡的实现示例,具有一定的参考价值,感兴趣的可以了解一下
    2024-04-04
  • nginx 自定义 404、50x 错误页面的实现

    nginx 自定义 404、50x 错误页面的实现

    本文主要介绍了nginx 自定义 404、50x 错误页面的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-12-12
  • nginx全局块的user指令的实现示例

    nginx全局块的user指令的实现示例

    user用于配置运行Nginx服务器的worker进程的用户和用户组,本文主要介绍了nginx全局块的user指令的实现示例,具有一定的参考价值,感兴趣的可以了解一下
    2024-07-07
  • Nginx设置目录的访问权限实现访问静态资源

    Nginx设置目录的访问权限实现访问静态资源

    遇到Permission denied错误,通常是Nginx用户权限不足,本文就来介绍一下Nginx设置目录的访问权限实现访问静态资源
    2024-10-10

最新评论