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 的理解不到位,才使得我用了以上笨办法,
和普通配置实际上是同样的,只是 Listen 的端口号不是 80 和 443
自签名证书制做不在这里介绍 配置自签名证书和通用证书方式实际上是同样的
参考:
http://www.javashuo.com/article/p-beayftbk-ct.html 这里有很详细的介绍,我选择了第一种:rewrite方法php
经过 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/; }
参考
https://www.cnblogs.com/paul8339/p/7389422.htmlhtml
如今没有加上 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/ 加到这个域名网站配置
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 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; } }