几点心得

  1. 如果没有显式声明 default server 则第一个 server 会被隐式的设为 default server
  2. 443后面一定要加ssl,不然http会被重定向到https
  3. 静态资源在上游服务器上,而不是当前nginx直接提供

学习环境

VisualBox 虚拟机 ubuntu 16.04 (网址:192.168.1.162)
通过 sudo apt install nginx 安装 nginx

学习建议

所有的实例里面都是将 80 和 443 端口在同一个 Server {…} 完成的
开始时不好理解,干脆全部拆开,一个 Server {…} 里面只 listen 一个端口
开始时全部在 default 里面配置,熟练之后,再拆分独立到一个一个的网站配置

** 其实我开始时不是以上这样子的,都是按照通行的办法开始的
** 因为我发现同事配置网站全都删除了default
** 对于 defult 的理解不到位,才使得我用了以上笨办法,

1、IP+端口号配置网站

和普通配置其实是一样的,只是 Listen 的端口号不是 80 和 443

2、自签名证书配置Https

自签名证书制作不在这里介绍
配置自签名证书和通用证书方式其实是一样的

3、强制 https

参考:
https://www.cnblogs.com/yun007/p/3739182.html 这里有很详细的介绍,我选择了第一种:rewrite方法

4、隐藏端口号

通过 proxy_pass 反向代理,将域名配置的网站直接指向之前使用 ip + 端口号 配置的网站

server_name_in_redirect off;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;location / {proxy_pass http://192.168.1.162:8001/;
}

5、自定义 404 页面

参考
https://www.cnblogs.com/paul8339/p/7389422.html

现在没有加上 php,所以使用方法一

error_page 404 /404.html;

location = /404.html {
root /var/www/html;
}

6、网站配置清单

http://192.168.1.162/
https://192.168.1.162/

http://192.168.1.162:8001/
https://192.168.1.162:4001/

http://test1621.wzh
https://test1621.wzh

这才是最终目的
http://test1621.wzh 会转向 http://192.168.1.162:8001/
httpss://test1621.wzh 会转向 http://192.168.1.162:4001/
如果也需要强制https 可以按照 http://192.168.1.162/ 加到这个域名网站配置

7、完整学习的配置文件 (都在一个 default 里面)

server {
listen 80 ; # default_server;
# listen [::]:80 ; # default_server;

# SSL configuration
#  listen 443 ssl ; # default_server;
#  listen [::]:443  ssl ; #  default_server;#  ssl on;
#  ssl_certificate  /var/www/cert2019/wyserver.crt;
#  ssl_certificate_key  /var/www/cert2019/wyserver.key;
root /var/www/html;# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;server_name _;# add by wzh 20190126 强制https
rewrite ^(.*)$  https://$host$request_uri$1 permanent;location / {try_files $uri $uri/ =404;
}error_page  404  /404.html;location = /404.html {root   /var/www/html;

}
}

server { # SSL configuration listen 443 ssl ; # default_server; # listen [::]:443 ssl ; # default_server;

 ssl on;ssl_certificate  /var/www/cert2019/wyserver.crt;ssl_certificate_key  /var/www/cert2019/wyserver.key;
root /var/www/html;# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;server_name _;location / {try_files $uri $uri/ =404;
}error_page  404  /404.html;location = /404.html {root   /var/www/html;
}

}

Virtual Host configuration for example.com
server { listen 8001 ; # listen [::]:8001 ;

server_name 192.168.1.162;# add by wzh 20190126 强制https
rewrite ^(.*)$  https://192.168.1.16:4001  permanent;root /var/www/test123;# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;

}

############### server { listen 4001 ssl; # listen [::]:4001 ssl;

server_name 192.168.1.162;ssl on;
ssl_certificate  /var/www/cert2019/wyserver.crt;
ssl_certificate_key  /var/www/cert2019/wyserver.key;root /var/www/test123;# Add index.php to the list if you are using PHP
# index index.html index.htm inde

nginx 隐藏端口号、自签名https、强制https相关推荐

  1. Nginx通过OpenSSL创建自签名证书配置HTTPS及二级目录

    目录 配置Https Nginx配置二级目录 升级示例 部署HTTP 升级为HTTPS 配置Https Nginx通过OpenSSL配置Https及二级虚拟目录 1.创建私钥秘钥和证书 mkdir - ...

  2. 使用nginx反向代理实现隐藏端口号

    在服务器上下载安装nginx,主要是修改配置nginx.conf. 在http模块中,添加如下配置 常见配置: user nginx nginx; worker_processes 1;error_l ...

  3. charles请求转发_用免费开源的frp实现内网穿透,使用nginx转发的方式去掉端口号...

    需要用内网穿透技术来实现通过其他公网 IP 来访问家里的 NAS 设备的需求,frp使用起来更加简便灵活,以及项目一直开源,所以本文选择frp作为示例 frp的github地址 :https://gi ...

  4. 知识点实用梳理:点对点协议(PPP)、广播信道多址访问、SMTP与POP3、RS232C、协议与端口号

    点对点协议(PPP): PPP工作在数据链路层(以OSI参考模型的观点).它通常用在两节点间创建直接的连接,并可以提供连接认证.传输加密以及压缩. PPP被用在许多类型的物理网络中,包括串口线.电话线 ...

  5. H3C网管型交换机、路由器 常用登录管理方式使用详解 及 默认端口号,默认用户名、密码

    H3C 登录管理方式有:Console.AUX Modem.ssh.Telnet.www(即:web) ,以Console.ssh.Thelnet.www 最为常用,这里也就以最为常用作为讲解. 关于 ...

  6. SQL数据库隐藏服务器后需要在连接字符串增加端口号,(provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)]...

    1.将SQL数据库服务设置为隐藏,端口默认改为2433 2.原有的ASP.NET程序访问数据库报错: 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误.未找到或无法访问服务器. ...

  7. nginx修改监听端口号8080_Nginx + Tomcat 配置

    这里使用Nginx解析域名,做出域名到Tomcat的映射 不多说 贴代码 Nginx 在http下 upstream tomcat { server 127.0.0.1:8080; } server ...

  8. Nginx 快速安装手册及如何修改端口号

    安装openssl-0.9.8e.tar.gz软件包 ./configure  --prefix=/usr/local/openssl make &&make install 2) 安 ...

  9. 记录一次nginx 配置https 强制http转发到https

    nginx.conf 主要配置 server {listen 443;root /home/wwwroot/default/xxx; #站点目录server_name www.xxx.com; #填写 ...

  10. HTTPS、HTTPS、SSH、MSTSC等常用网络服务的端口号

    ■前言 今天在 powershell下使用curl命令访问 一个网址 返回...443 port...相关的错误信息,我第一眼看,还以为是HTTP_STATUS_CODE 于是去查了一会儿才发现,是端 ...

最新文章

  1. for死循环、怪异字符串、两次return……Python冷知识(三)
  2. 【面试招聘】去不了大厂实习,小厂实习去吗?
  3. 音视频技术开发周刊 | 228
  4. js高级 — ES6
  5. Makefile使用及多文件gdb 调试
  6. 【Tensorflow】tf.nn.depthwise_conv2d如何实现深度卷积?+深度可分离卷积详解
  7. 美丽的数学家:如果您讨厌数学,这些其实都是人生故事
  8. POJ 1797 Heavy Transportation 最短路变形(dijkstra算法)
  9. 安装MATLAB(已经下载安装包)
  10. 在Mac上将WebP图像批量转换为JPG的方法
  11. 基本 SQL 之增删改查
  12. RS485芯片与单片机接口中的一个容易忽略的隐患
  13. Awesome-Windows
  14. 联想服务器系统初始化失败怎么回事,win10重置初始化失败怎么解决
  15. 清明假期,超市可重点主推的品类
  16. 获取Map的key值的几种方式
  17. undo歌词中文音译_Undo - Sanna nielsen帮我看看这歌词翻译对么
  18. 学会理解和更新kali软件源
  19. html中加水印,静态html页面 添加水印效果 且 水印不可复制
  20. 微信小程序输入框输入换行

热门文章

  1. iOS安装CocoaPods详细过程
  2. 转:Raft一致性选举算法的ppt与视频
  3. Bzoj 3831: [Poi2014]Little Bird
  4. Vivado Launching SDK Importing Hardware Specification error的解决方法
  5. 『原创·翻译』如何阅读论文
  6. java笔记之字符串,字符串数组,ListString的相互转换
  7. 2011年国庆老家记录
  8. Hercules配置文件HERCULES.CNF范本
  9. Error creating object Microsoft Data Access Components 2.1 (or later) have been properly installed
  10. git clone 遇到的坑