通過http、https域名訪問靜態網頁、nginx配置負載均衡(nginx配置)


很多場景下需要可以通過瀏覽器訪問靜態網頁,不想把服務器ip地址直接暴露出來,通過nginx可以解決這個問題。

實現http域名訪問靜態網頁

1.域名解析配置(本文都是以阿里雲為例,其他平台,操作步驟類似)

進入阿里雲的域名解析頁面,配置域名指向的服務器地址(記錄類型選擇A,記錄值填寫服務器ip,記得把服務器的80端口開放)

​      ​ 

修改nginx配置文件,重啟nginx,這樣通過http域名就可以訪問網頁資源了

server {
        listen 80; # 訪問不帶端口號時,默認是80端口
        server_name www.dishuizhiyi.top; # 剛剛配置的域名
        location / {
                root   /app/web/demoPage; # 靜態網頁資源放置的文件夾(服務器上的位置)
                # 默認訪問index頁面
                try_files $uri $uri/  /index.html; 
                index  index.html index.htm;
        }
}

# 檢查文件格式是否正確
$ /usr/local/nginx/sbin/nginx -t
# 重啟nginx
$ /usr/local/nginx/sbin/nginx -s reload

頁面訪問情況如下

實現https域名訪問靜態網頁

https需要配置證書,保證安全性,首先購買證書(阿里雲提供了免費的證書,本文就以此為例)

1.購買證書(進入SSL證書頁面,購買證書;然后選擇單域名、DV SSL、免費版進行購買)

​     

2.購買完成后控制台列表會有一條未簽發的記錄,點擊證書申請


3.填寫證書申請信息,然后點擊下一步,出現驗證信息,需要進行驗證(域名解析中配置解析)

​       

4.域名解析頁面配置解析記錄(類型為TXT,記錄值為證書驗證信息中的記錄值),配置好后,點擊驗證,提示驗證成功。

  ​         

5.下載證書(因為使用的是Nginx,所以下載Nginx對應的證書文件),下載好后上傳到服務器。

6.配置Nginx的配置文件(服務器需要開放443端口<https訪問端口>)

server {
        listen       443 ssl; # 監聽端口
        server_name  www.dishuizhiyi.top;
        # 證書文件
        ssl_certificate      /usr/local/nginx/cert/top.pem;
        ssl_certificate_key  /usr/local/nginx/cert/top.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        location / {
                root   /app/web/demoPage;
                try_files $uri $uri/  /index.html;
                index  index.html index.htm;
        }
}

7.重啟Nginx。

# 在校驗配置文件的時候,報了一個錯誤。
# Nginx如果未開啟SSL模塊,配置Https時提示錯誤
# 因為Nginx缺少http_ssl_module模塊,編譯安裝的時候帶上–with-http_ssl_module配置就行了。
nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:127
nginx: configuration file /usr/local/nginx/conf/nginx.conf test failed

# 但是現在nginx已經安裝完成了,添加模塊的步驟如下
# 查看當前安裝Nginx的信息(configure arguments后面的信息為空,沒有我們想要的模塊)
$ /usr/local/nginx/sbin/nginx -v

nginx version: nginx/1.14.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) 
configure arguments:

# 進入源碼路徑,重新打包
$ cd /usr/nginx/nginx-1.14.1
# 運行下面的命令即可,等配置完
$ ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
# 這里不要進行make install,否則就是覆蓋安裝
$ make
# 備份舊的文件(可以選擇不備份)
$ cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak 
# 覆蓋新的文件到執行路徑(要把Nginx先停掉)
$ cp objs/nginx /usr/local/nginx/sbin/
# 覆蓋完成后啟動Nginx
$ usr/local/nginx/sbin/nginx

8.通過https域名訪問網頁(https配置成功后,訪問域名前邊會有一把小鎖)

Nginx配置負載均衡

# 以https為例(http方式也可以),通過upstream的配置,實現轉發,weight代表節點的權重
server {
        listen 443 ssl;
        server_name api.dishuizhiyi.top;

        ssl on;

        ssl_certificate /cert/top.pem;
        ssl_certificate_key /cert/top.key;

        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout 5m;

        ssl_ciphers HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers on;

        location / {
            proxy_pass http://api;
        }
    }

    upstream api{
         server 127.0.0.1:3000 weight=1;
         server 127.0.0.1:3001 weight=1;
         server 127.0.0.1:3002 weight=1;
    }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM