Nginx实现配置http和https

AI 概述
一、http 简单配置二、https 配置三、单域名指向本地不同服务,以 https 配置为例 Nginx 是使用最多的代理服务器之一,本文主要讲解关于 Nginx 实现配置 http 和 https 的步骤。 配置文件 默认放置位置:{nginx}/conf.d/,以 conf 结尾 一、http 简单配置 server { listen 80; ...
目录
文章目录隐藏
  1. 一、http 简单配置
  2. 二、https 配置
  3. 三、单域名指向本地不同服务,以 https 配置为例

Nginx 是使用最多的代理服务器之一,本文主要讲解关于 Nginx 实现配置 http 和 https 的步骤。

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

一、http 简单配置

server {
        listen       80;
        server_name  www.mybj123.com;
        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 mybj123.com;
	root /mnt/website/ROOT;
	location ^~ / {
             rewrite ^(.*) http://www.mybj123.com$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.mybj123.com;
        root /mnt/website/ROOT;
	     ssl                  on;
       ssl_certificate      /etc/nginx/ssl/www.mybj123.com.crt;
       ssl_certificate_key      /etc/nginx/ssl/www.mybj123.com.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.mybj123.com/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.mybj123.com;
        root /mnt/website/ROOT;
	 ssl                  on;
       ssl_certificate      /etc/nginx/ssl/www.mybj123.com.crt;
       ssl_certificate_key      /etc/nginx/ssl/www.mybj123.com.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.mybj123.com/imgPath$1 last;
        }
      
        location ~* ^/WEB-INF/.*$
        {
         deny all;
        }

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

            rewrite ^(.*) https://www.mybj123.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.xxx.com/shop/xxx,为访问路径

以上关于Nginx实现配置http和https的文章就介绍到这了,更多相关内容请搜索码云笔记以前的文章或继续浏览下面的相关文章,希望大家以后多多支持码云笔记。

「点点赞赏,手留余香」

0

给作者打赏,鼓励TA抓紧创作!

微信微信 支付宝支付宝

还没有人赞赏,快来当第一个赞赏的人吧!

声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » Nginx实现配置http和https

发表回复