设为首页收藏本站
天天打卡

 找回密码
 立即注册
搜索
查看: 58|回复: 18

Nginx配置http和https的实现步骤

[复制链接]

2

主题

40

回帖

126

积分

注册会员

积分
126
发表于 2024-4-20 08:11:15 | 显示全部楼层 |阅读模式
目录

  1. 配置文件 默认放置位置:{nginx}/conf.d/,以conf结尾
复制代码
一、http简单配置
  1. server {
  2.         listen       80;
  3.         server_name  www.test.cn;
  4.         root /mnt/website/ROOT;
  5.         
  6.         if ( $query_string ~* ".*[;'<>].*" ){
  7.             return 404;
  8.         }
  9.         if ( $query_string ~* ".*script.*" ){
  10.             return 404;
  11.         }

  12.         location ~* ^/WEB-INF/.*$
  13.         {
  14.          deny all;
  15.         }

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

  20.         location / {
  21.              proxy_set_header Host $host;
  22.              proxy_set_header X-Real-IP $remote_addr;
  23.              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  24.              proxy_pass   http://127.0.0.1:8888;
  25.         }
  26. }
  27. server{
  28.         server_name test.cn;
  29.         root /mnt/website/ROOT;
  30.         location ^~ / {
  31.              rewrite ^(.*) http://www.test.cn$1 permanent;
  32.         }
  33. }
复制代码
说明:
1,http默认端口是80
2,http://127.0.0.1:8888;为实际本地服务端口
3,一般服务域名为二级域名www,一级域名一般也配置指向www域名。

二、https配置

首先得申请ssl证书,百度,阿里都有免费证书可用,申请成功后,下载nginx压缩包,解压后,可见两种后缀文件,一个是xxx.key,另一个是xxx.crt,或者是xxx.pem。文件名可以随意更改,一般改为域名。
其次是配置文件配置
  1. server {
  2.         listen       443;
  3.         server_name  www.test.cn;
  4.         root /mnt/website/ROOT;
  5.              ssl                  on;
  6.        ssl_certificate      /etc/nginx/ssl/www.test.cn.crt;
  7.        ssl_certificate_key      /etc/nginx/ssl/www.test.cn.key;
  8.        ssl_session_timeout  5m;
  9.        ssl_protocols  SSLv3 TLSv1;
  10.        ssl_ciphers  HIGH:!ADH:!EXPORT56:RC4+RSA:+MEDIUM;
  11.        ssl_prefer_server_ciphers   on;


  12.         if ( $query_string ~* ".*[;'<>].*" ){
  13.         return 404;
  14.         }
  15.         if ( $query_string ~* ".*script.*" ){
  16.         return 404;
  17.         }

  18.         location ~* ^/imgPath/.*$
  19.         {
  20.          rewrite ^/imgPath(.*) http://img.test.cn/imgPath$1 last;
  21.         }
  22.       
  23.         location ~* ^/WEB-INF/.*$
  24.         {
  25.          deny all;
  26.         }

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

  32.             proxy_set_header Host $host;
  33.             proxy_set_header X-Real-IP $remote_addr;
  34.             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  35.             proxy_pass   http://127.0.0.1:8888;
  36.         }
  37. }
复制代码
说明:
1,https端口为443,此端口不是服务器默认开放端口,需要单独打开。
2,ssl文件放置正确即可。crt文件换成pem文件亦可。
3,资源文件路径可指向其他域名,可见location ~* ^/imgPath/.*$这段

三、单域名指向本地不同服务,以https配置为例
  1. upstream shop {
  2.    server 127.0.0.1:7777;
  3. }

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


  15.         if ( $query_string ~* ".*[;'<>].*" ){
  16.         return 404;
  17.         }
  18.         if ( $query_string ~* ".*script.*" ){
  19.         return 404;
  20.         }

  21.         location ~* ^/imgPath/.*$
  22.         {
  23.          rewrite ^/imgPath(.*) http://img.test.cn/imgPath$1 last;
  24.         }
  25.       
  26.         location ~* ^/WEB-INF/.*$
  27.         {
  28.          deny all;
  29.         }

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

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

  37. location /shop/ {
  38. proxy_pass http://shop;
  39. proxy_redirect off;
  40. proxy_set_header Host $host;
  41. proxy_set_header X-Real-IP $remote_addr;
  42. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  43. client_max_body_size 10m;
  44. client_body_buffer_size 128k;
  45. proxy_connect_timeout 300;
  46. proxy_send_timeout 300;
  47. proxy_read_timeout 300;
  48. proxy_buffer_size 128k;
  49. proxy_buffers 2 256k;
  50. proxy_busy_buffers_size 256k;
  51. proxy_temp_file_write_size 256k;
  52. }
  53.     }
复制代码
说明:
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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

1

主题

49

回帖

121

积分

注册会员

积分
121
发表于 2024-4-28 06:42:46 | 显示全部楼层
确实牛逼

0

主题

63

回帖

127

积分

注册会员

积分
127
发表于 2024-5-18 16:04:29 | 显示全部楼层
嘎嘎嘎嘎嘎嘎嘎

1

主题

53

回帖

129

积分

注册会员

积分
129
发表于 2024-5-26 10:10:59 | 显示全部楼层
每日一回

1

主题

57

回帖

135

积分

注册会员

积分
135
发表于 2024-6-5 12:26:09 | 显示全部楼层
每日一回

1

主题

50

回帖

124

积分

注册会员

积分
124
发表于 2024-6-7 08:48:18 | 显示全部楼层
已测试,非常不错

0

主题

47

回帖

95

积分

注册会员

积分
95
发表于 2024-6-19 06:11:03 | 显示全部楼层
你的信息来源是?我想了解更多。

0

主题

25

回帖

51

积分

注册会员

积分
51
发表于 2024-7-22 09:17:02 | 显示全部楼层
友善的讨论氛围是非常重要的。

0

主题

46

回帖

95

积分

等待验证会员

积分
95
发表于 2024-8-4 15:42:42 | 显示全部楼层
我想了解更多

0

主题

49

回帖

99

积分

注册会员

积分
99
发表于 2024-8-23 07:01:23 | 显示全部楼层
牛逼
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|爱云论坛 - d.taiji888.cn - 技术学习 免费资源分享 ( 蜀ICP备2022010826号 )|天天打卡

GMT+8, 2024-11-15 05:34 , Processed in 0.097880 second(s), 27 queries .

Powered by i云网络 Licensed

© 2023-2028 正版授权

快速回复 返回顶部 返回列表