先說說我犯的錯誤吧,老是忘記域名先要在 DNS 伺服器部署,再在 nginx 配置。
步驟:
1.將你想用的域名,在 DNS 伺服器備案。
舉個例子,
shoelesscai.com
en.shoelesscai.com
m.shoelesscai.com
2.專案資料夾如何確定?
shoelesscai.com ../html
en.shoelesscai.com ../html/en
m.shoelesscai.com ../html/mobile
3.使用 Linux 執行以下程式碼
我用的 CentOS,主要因為這個版本介面化比較好,很接近 WIndows。
執行 vim /etc/nginx/nginx.conf
4.伺服器部署如下
http {
/* server -1 */
server {
listen 80;
server_name shoelesscai.com;
root ../html;
index index.html;
location \ {
}
}
server {
listen 443; // https 埠
server_name shoelesscai.com;
root ../html;
index index.html;
location / {
}
}
/* server -2 */
server {
listen 80;
server_name en.shoelesscai.com;
root ../html/en;
index index.html;
location \ {
}
}
server {
listen 443; // https 埠
server_name en.shoelesscai.com;
root ../html/en;
index index.html;
location / {
}
}
/* server -3 */
server {
listen 80;
server_name m.shoelesscai.com;
root ../html/m;
index index.html;
location \ {
}
}
server {
listen 443; // https 埠
server_name m.shoelesscai.com;
root ../html/m;
index index.html;
location / {
}
}
}
5. 這裡涉及幾個問題。
第一,https 必須先配置 80 埠。
第二,如果配置完不用 443 ,則用 page_error 跳轉。
注意,https 是針對 SSL 產生的專用埠。
第三,443 埠是可以不部署的,即便你使用了 SSL。具體做法,自定義埠,並且羅列所以可能情況,如果有些情況預計到不能解決,則走 error_page。
6.為什麼一定要 DNS 伺服器配置
我們配置 vim /etc/nginx/nginx.conf
寫 server_name,至少 php 知道這是個域名吧。如果 DNS 伺服器不配置,php 就不知道這是個域名。
歡迎關注 ShoelessCai.com 。