几点心得

1. 如果没有显式声明 default server 则第一个 server 会被隐式的设为 default server
1. 443后面一定要加ssl,不然http会被重定向到https
1. 静态资源在上游服务器上,而不是当前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;
}

网站配置清单

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/ 加到这个域名网站配置

完整学习的配置文件 (都在一个 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 PHPindex index.html index.htm index.nginx-debian.html;server_name _;# add by wzh 20190126 强制httpsrewrite ^(.*)$  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 PHPindex 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 强制httpsrewrite ^(.*)$  https://192.168.1.16:4001  permanent;root /var/www/test123;# Add index.php to the list if you are using PHPindex 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 index.nginx-debian.html;

}

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

    server_name  test1621.wzh;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/;}

}

server {
listen 443 ; # ssl ;
# listen [::]:443; # ssl ;
# ssl on;

    server_name  test1621.wzh;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 https://192.168.1.162:4001;}

}

nginx 学习记录:IP+端口号配置网站、隐藏端口号、自签名证书配置Https、强制Https、自定义404相关推荐

  1. 端口号占用,查看端口号

    问题:端口号被占用,查询该端口号并结束该端口号. 1. 打开命名窗口 使用快捷键 Window + R 2. 查看端口号 查看所有端口号 netstat -ano 查看指定端口号 以 8080 端口为 ...

  2. 端口号分类及其常用端口号

    基本概念 计算机端口可以认为是计算机与外界通讯交流的出口. 端口定义:(1)在物理意义上如集线器,交换机,路由器等用于连接其他网络设备的接口. (2)逻辑意义上的端口,一般指网络中面向连接服务和无连接 ...

  3. 如何修改mysql占用的端口号_修改mysql端口号(mysql的端口号)

    修改mysql端口号(mysql的端口号) 2020-05-07 22:12:00 共10个回答 如何查看mysql默认端口号和修改端口号 登录mysql,使用命令showglobalvariable ...

  4. mysql有多少个端口号_查看mysql端口号(mysql端口号是多少)

    查看mysql端口号(mysql端口号是多少) 2020-05-07 22:11:45 共10个回答 如何查看mysql的端口号 1使用命令showglobalvariableslike'port'; ...

  5. tomcat默认端口号(三个tomcat端口号)

    tomcat默认端口号(三个tomcat端口号) 2020-05-08 10:43:21 共10个回答 Tomcat的默认端口号是多少 您好,提问者:Tomcat的默认端口号是:8080.weblog ...

  6. Springboot项目邮件发送25端口号修改为465端口号

    背景: 之前项目发邮件是使用25端口号来发送,但是由于升级部署迁移至阿里云,阿里云是禁止25端口号,所以我们需要使用465端口号来发送邮件. 各端口号的协议,借鉴:https://www.douban ...

  7. linux中sftp默认登录的端口号是多少? sftp通过指定的端口号连接?sftp默认端口号...

    需求描述: 今天一个同事,遇到个问题,程序连接sftp服务器连接不上,问我端口号是多少, 我想了一下是21还是22,所以就做了测试,发现sftp默认的连接端口号是22, 在此做下记录. 操作过程: 1 ...

  8. linux中sftp默认登录的端口号是多少? sftp通过指定的端口号连接?sftp默认端口号

    需求描述: 今天一个同事,遇到个问题,程序连接sftp服务器连接不上,问我端口号是多少, 我想了一下是21还是22,所以就做了测试,发现sftp默认的连接端口号是22, 在此做下记录. 操作过程: 1 ...

  9. Ngxin禁止IP+端口号访问系统,设置只能通过域名访问

    下载nginx yum install nginx 配置nginx 查看配置文件的位置: [root@VM-4-8-centos ~]# nginx -t nginx: the configurati ...

  10. Java网络编程(网络基础(IP端口号网络通信协议)、TCP编程、UDP编程和URL编程原理以及常用方法的实例)

    网络编程 网络基础概述 计算机网络:   把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大.功能强的网络系统,从而使众多的计算机可以方便地互相传递信息.共享硬件.软件.数据信息等 ...

最新文章

  1. SpringBoot项目的几种创建方式,启动、和访问
  2. 终于好像懂motan了!!!
  3. UA MATH563 概率论的数学基础 中心极限定理20 弱收敛的性质
  4. vue项目获取下拉框选中id_vue treeselect获取当前选中项的label实例
  5. Boost:与容器相关的BOOST_TEST_EQ测试
  6. 基于Xml 的IOC 容器-向容器注册
  7. 基于文本知识库的强化学习技术——Learning to Win by Reading Manuals in a Monte-Carlo Framework
  8. 2-用EasyNetQ连接RabbitMQ(黄亮翻译)
  9. django分页功能 views与templates
  10. .net体系结构——C#高级编程第一章
  11. 静态库与动态库的制作
  12. STM32 内部Flash读写 程序源码 [已验证]
  13. salesforce 和 salesforce platform 的License的区别
  14. 綾波レイ(II)の詩
  15. 从0到1 用腾讯云低代码开发一个问卷小程序(基于模版中心二开)
  16. CPU与GPU计算能力比较
  17. word无法打开文件,因为内容有错误的解决办法
  18. android系统相机实时数据采集流程,Android摄像头获取实时数据+Demo
  19. 三极管原理--我见过最通俗讲法
  20. 一些俗语,不思八九,常想一二

热门文章

  1. 理解 static (深入了解JAVA虚拟机)
  2. Web负载均衡与分布式架构
  3. 动态代理 aop切面实现事务管理
  4. 借款条和还款条的写法(附模板)
  5. hibernate DetachedCriteria实现多表关联查询createAlias的使用
  6. 【原创】构建高性能ASP.NET站点 第七章 如何解决内存的问题(前篇)—托管资源优化—垃圾回收机制深度剖析...
  7. Linux 下MongoDb的安装
  8. ConcurrentDictionary 与 Dictionary
  9. 【iOS】获取应用程序本地路径
  10. HDU 4069 Squiggly Sudoku