1. 程式人生 > >windows伺服器下使用nginx 基礎(一)

windows伺服器下使用nginx 基礎(一)

windows nginx

問題:為什麼使用windows伺服器,因為不會linux。為什麼使用node做伺服器語言,因為學習成本相較低。為什麼不node裸奔,其實我這種小部落格完全可以直接用node,但是我就是想試下nginx,雖然沒搞明白反向代理,負載均衡。為什麼不用apache,因為不喜歡。

硬體:騰訊雲windows伺服器一臺,已解析域名一個
方法:nginx

安裝

這步就不詳細說了,直接官網下載,我用的1.14目前的最新穩定版,下載下來,弄到伺服器就ok,反正我是直接拖過去的,和其他方法有啥區別,目前而今眼目下就不去研究了。

在這裡插入圖片描述

在這裡插入圖片描述

nginx

常用命令:
nginx -s quit 優雅停止nginx,有連線時會等連線請求完成再殺死worker程序
nginx -s reload 優雅重啟,並重新載入配置檔案nginx.conf
nginx -s reopen 重新開啟日誌檔案,一般用於切割日誌
nginx -v 檢視版本
nginx -t 檢查nginx的配置檔案
nginx -h 檢視幫助資訊
nginx -V 詳細版本資訊,包括編譯引數
nginx -c filename 指定配置檔案

主要配置在conf檔案的nginx.conf中,
初始:

server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }
		。。。。。。
    }

此時,在nginx目錄中,執行cmd,輸入

start nginx

開啟瀏覽器,輸入localhost,瀏覽器出現下圖,表示nginx可以使用了。
在這裡插入圖片描述

然後修改配置

server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   C:\web\websevertest;
            index  index.html;
        }
}

我這裡使用絕對路徑,都一樣。新建一個html檔案,路徑寫到root
在這裡插入圖片描述
以前要更新nginx,現在用的1.14版本好像不用更新,直接就重新整理瀏覽器就可以了。具體的話,要去看官網。

nginx -s reload

好了,再看locahost
在這裡插入圖片描述

這個時候,因為我的域名和伺服器ip已經繫結,直接將域名寫到server_name上即可

server_name  www.keway.top keway.top;

然後我們在公網上就可以訪問我們的網站了
在這裡插入圖片描述

手機端訪問

一般來說,響應式設計就可以滿足大部分網站需求,但是有的需求比較不同,就需要單獨寫一個移動端網站,這個時候就可以通過設定nginx,讓nginx判斷是什麼裝置,然後展示不同的頁面。
在這裡插入圖片描述
然後修改配置

		listen       80;
        server_name  www.keway.top keway.top;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        # #######
        set $mobile_rewrite do_not_perform;

        if ($http_user_agent ~* "(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino") {
          set $mobile_rewrite perform;
        }

        if ($http_user_agent ~* "^(1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-)") {
          set $mobile_rewrite perform;
        }


        location / {
            #root   html;
            root   C:/web/websevertest;
            
            # 如果是移動端
            if ($mobile_rewrite = perform) {
                root   C:/web/apptest;
            }
            index  index.html;
        }

開啟手機或者除錯成手機模式
在這裡插入圖片描述

還有個問題,就是瀏覽器提示網站不安全,那還得了,別人看到了還以為我是釣魚網站。趕緊百度一下咋回事
百度告訴我,是http協議的問題,因為各種我搞不懂的原因,反正就是不安全,現在流行https了,小程式好像也必須要https的才能上線。瞅瞅咋解決,也比較簡單

https

首先申請個ssl證書,因為我當時域名在阿里買的,有免費ssl證書(阿里雲的有泛域名免費證書,我當時不懂,選了個www的,悲催),騰訊和阿里都差不多,具體安裝使用安裝步驟,這裡講的很清楚了。
配置好後,發現有點小問題。
直接輸入https://www.xxx.com沒問題,但是如果輸入 xxx. com,就出錯了。解決辦法:更改http(80)配置,讓他跳轉到https上。

server {
        listen       80;
        server_name  www.keway.top keway.top;
        rewrite ^(.*)$  https://$host$1 permanent;

這樣隨便輸入就可以訪問到了。
在這裡插入圖片描述

很基礎的東西,nginx的先到這裡,後期再做反向代理、負載啥的。目前繼續我的前臺頁面。