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; } }