2017-03-05 CentOS中結合Nginx部署dotnet core Web應用程序

Visual Studio Live 倒計時2天,當然這是美國倒計時兩天,中國應該是在3月8日的凌晨,正值"3.8婦女節"。提前祝廣大的女性同志節日快樂,當然還有奮鬥在一線的程序媛們。

言歸正傳,在昨天的dotnet core Web發佈到Linux中,遺留的問題,我們繼續探討。首先了解下Nginx是什麼,這個我也並不是很瞭解,記得在前段時間,在看H5移動開發的時候,用到過,但也並沒有深入研究。先看下來自百度百科的解釋:

Nginx ("engine x") 是一個高性能的HTTP反向代理服務器,也是一個IMAP/POP3/SMTP服務器。Nginx是由Igor Sysoev爲俄羅斯訪問量第二的Rambler.ru站點開發的,第一個公開版本0.1.0發佈於2004年10月4日。其將源代碼以類BSD許可證的形式發佈,因它的穩定性、豐富的功能集、示例配置文件和低系統資源的消耗而聞名。2011年6月1日,nginx 1.0.4發佈。
Nginx是一款輕量級Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,並在一個BSD-like 協議下發行。由俄羅斯的程序設計師Igor Sysoev所開發,供俄國大型的入口網站及搜索引擎Rambler(俄文:Рамблер)使用。其特點是佔有內存少,併發能力強,事實上nginx的併發能力確實在同類型的網頁服務器中表現較好,中國大陸使用nginx網站用戶有:百度、京東新浪網易騰訊淘寶等。
實際上這就是一個輕量級的服務器,Web服務器、反向代理服務器、電子郵件代理服務器,看來還是很強大的,那在今天的內容中,毫無疑問,它擔任的是Web服務器的角色了,相當於我們的IIS服務器了,亦或是Tomcat服務器,屬於輕量級。這樣看的話,我們就無需懼怕它了。

首先我們來安裝和啓動Nginx服務,以下是安裝和啓動的步驟:

#1.下載Nginx包
curl -o nginx.rpm http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
#2.建立Nginx的yum倉庫
rpm -ivh nginx.rpm
#3.下載並安裝Nginx
yum install nginx
#4.啓動Nginx服務
systemctl start nginx
#5.將nginx服務設爲開機啓動,這樣當服務器重啓也就不用手動啓動服務了
systemctl enable nginx

看到這些命令行,真的是有點頭大,昨天因爲一些符號的問題,搞出很多錯,所以大家一定要小心,下面我們按照上面的步驟進行安裝:



這時nginx服務已經安裝成功了,可以使用 nginx -v 命令查看版本,這裏的版本是1.10.3,如果此時輸入服務器的地址,那麼應該可以看到Nginx的頁面,默認是用的80端口,訪問我自己的服務器,測試一下,大鴨梨博客,開始的時候我沒有訪問到,查看了下防火牆,沒有把80端口開放,具體的如何開放,在上一篇博客中已經提到了,注意添加完規則後執行下reload重新應用規則,同樣對nginx 服務也一樣,當修改內容也要reload一下,以免出現不必要的麻煩 nginx -s reload ,具體的命令大家自行查找吧。當我添加上80端口後,重新運行,終於看到了我們想要的內容:


下面開始配置我們的nginx服務,實際上端口的轉發,將我們Web應用的5000端口轉發到80端口,我們需要找到一個.conf文件,在裏面進行相應的配置,路徑爲:/etc/nginx/conf.d/default.conf ,我們先看下這個配置文件裏的內容:

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/log/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}
#後面的都是一些註釋,裏面加了一些默認的配置,具體怎麼解釋還是自己再查相應的資料吧,我們將其全部刪掉,替換成我們要修改的內容,具體內容如下:
server {
    listen       80;
    location / {
	proxy_pass http://localhost:5000;
	proxy_http_version 1.1;
	proxy_set_header Upgrade $http_upgrade;
	proxy_set_header Connection keep-alive;
	proxy_set_header Host $host;
	proxy_cache_bypass $http_upgrade;
    }
}

可以看到我們將地址指向了我們的Web應用。配置完成後我們在putty裏面直接查看是否修改成功,以防萬一,

reload時報了個錯誤,注意location後面的寫法“location / ”,斜槓前後都有空格,不知道怎麼拷貝的時候沒了,注意下,重新修改了下Ok了,我們現在去啓動下Web,看是否能轉發成功,期待一下。


其實是沒有懸念的事,這麼認真肯定是可以成功的,鼓掌!!!


那麼問題又來了,我們總不能一直讓這個黑色窗口開着吧,未必有點太low了,像我們強大的IIS就不會出這麼個醜陋的窗口,一直是默默的爲我們的服務,這篇博客就是寫這麼多吧,這個問題就留到下面博客中去說,以免內容太多,產生審美疲勞。


掃描二維碼關注我的公衆號,共同學習,共同進步!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章