整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          docker desktop的最佳替代者-OpenS

          docker desktop的最佳替代者-OpenShift Local 2.0

          帽在最近剛剛推出了OpenShift Local 2.0,業(yè)內(nèi)公認(rèn)openshift是目前最好的k8s發(fā)行版之一。我們可以通過OpenShift Local在本地快速體驗(yàn)一下當(dāng)下最優(yōu)秀的容器開發(fā)體驗(yàn)。



          Red Hat OpenShift Local(以前稱為 Red Hat CodeReady Containers)允許您在本地計(jì)算機(jī)上運(yùn)行 OpenShift 以簡化設(shè)置和測試。它在本地模擬云開發(fā)環(huán)境,并提供開發(fā)基于容器的應(yīng)用程序所需的所有工具。

          Red Hat OpenShift Local 和常規(guī)的 OpenShift 容器平臺安裝,具有以下顯著差異:

          Red Hat OpenShift Local 的OpenShift 容器平臺集群是短暫的,不適用于生產(chǎn)用途。

          紅帽 OpenShift Local 沒有支持升級到較新 OpenShift 容器平臺版本的路徑。升級 OpenShift 容器平臺版本可能會導(dǎo)致難以重現(xiàn)的問題。

          它使用一個節(jié)點(diǎn),該節(jié)點(diǎn)同時(shí)充當(dāng)控制平面和工作節(jié)點(diǎn)。

          默認(rèn)情況下,它禁用群集監(jiān)控operater。這會導(dǎo)致 Web 控制臺的相應(yīng)部分無法正常工作。因?yàn)镽ed Hat OpenShift Local是設(shè)計(jì)為臺式機(jī)、筆記本電腦上運(yùn)行的,監(jiān)控太吃資源了。

          OpenShift 容器平臺群集在稱為實(shí)例的虛擬機(jī)中運(yùn)行。這可能會導(dǎo)致其他差異,尤其是外部網(wǎng)絡(luò)。

          紅帽 OpenShift Local 提供的 OpenShift 容器平臺集群還包括以下不可自定義的集群設(shè)置:

          1使用 *.crc.testing 域。

          2用于內(nèi)部群集通信的地址范圍。

          群集使用 172 地址范圍。例如,當(dāng)代理在同一地址空間中運(yùn)行時(shí),這可能會導(dǎo)致問題。

          從 2.0 版本開始,OpenShift Local 可以處理單獨(dú)的machine bundles。紅帽添加了 Podman,以便在出色的單機(jī)本地 OpenShift 體驗(yàn)之上實(shí)現(xiàn)纖薄的容器運(yùn)行時(shí)和最少的下載。

          OpenShift Local 2.0 包括2個預(yù)先的設(shè)置模式。如圖所示,您可以選擇默認(rèn)的 OpenShift bundles,或者如果要從更集中的容器運(yùn)行時(shí)開始,可以選擇 Podman 選項(xiàng)。這意味著您可以從專注于單個容器(或僅幾個)開始,并使用更小的開發(fā)設(shè)置。然后,您可以在準(zhǔn)備就緒時(shí)通過啟用 OpenShift bundles來轉(zhuǎn)向編排容器。(很明顯,這是對著docker desktop來的)。



          OpenShift Local 2.0 中可用的選項(xiàng)

          如果您的機(jī)器沒有足夠的性能本地運(yùn)行Podman或OpenShift,您可以嘗試其他替代方案,例如紅帽托管的Red Hat OpenShift開發(fā)人員沙盒https://developers.redhat.com/developer-sandbox(無限次免費(fèi)申請,30天有效期,但是由于國內(nèi)屏蔽海外短信,需要發(fā)郵件激活。)

          更易獲得

          在以前的版本中,命令行工具的下載中包含安裝了OpenShift的虛擬機(jī)的捆綁包,這增加了下載量,但改善了啟動體驗(yàn)。現(xiàn)在,捆綁包已完全解耦,但在首次創(chuàng)建計(jì)算機(jī)時(shí)會延遲下載。這允許較小的捆綁包,例如Podman的捆綁包,以及未來的各種替代捆綁包。

          請務(wù)必為 GitHub 項(xiàng)目頁面(https://github.com/code-ready/crc)添加書簽,并返回查看有關(guān)可用捆綁包的更多更新,以及對創(chuàng)建自己的捆綁包的支持。

          未來路線圖

          紅帽希望提供一個即將推出的版本,該版本與Apple向M1(ARM)架構(gòu)的遷移兼容。紅帽的目標(biāo)是通過采用 Podman 上游進(jìn)行容器運(yùn)行時(shí)開發(fā),然后擴(kuò)展到 MicroShift,當(dāng)然還有對 OpenShift 的持續(xù)支持,為開發(fā)人員提供無縫體驗(yàn)。紅帽還希望繼續(xù)與最終用戶使用桌面容器解決方案提高工作效率所需的內(nèi)容保持一致。

          請留意上游與Podman周圍努力的更多一致性。在這里,紅帽將尋求調(diào)整虛擬化技術(shù)、安裝和用戶界面組件,以提供上游容器化技術(shù)的良好體驗(yàn)。

          準(zhǔn)備好試一試了嗎?請?jiān)L問紅帽的紅帽 OpenShift 本地產(chǎn)品頁面,獲取下載鏈接和更多詳細(xì)信息,立即開始使用!


          對于一般的開發(fā)者來說,podman模式直接對標(biāo)傳統(tǒng)的docker desktop。輕量級的部署幾個容器用podman模式已經(jīng)足夠。而openshift模式則比docker desktop自帶的kubernetes模式強(qiáng)得太多太多了。如果你的電腦有24G內(nèi)存以上的話,推薦試試


          下面是windows部署步驟:

          先決條件

          OpenShift Local 2.0 需要以下最少的系統(tǒng)資源來運(yùn)行 Red Hat OpenShift:

          4 個虛擬 CPU (vCPU)

          9 GB 內(nèi)存

          35 GB 存儲空間

          您還需要主機(jī)操作系統(tǒng)的本機(jī)虛擬機(jī)管理程序。OpenShift Local 2.0目前支持libvirt for Linux,HyperKit for macOS和Hyper-V for Windows。

          而對于podman選項(xiàng),需求是

          2個虛擬 CPU (vCPU)

          2GB 內(nèi)存

          在 Microsoft Windows 上,Red Hat OpenShift Local 需要 Windows 10 Fall Creators Update(版本 1709)或更高版本。Red Hat OpenShift Local 不適用于早期版本的 Microsoft Windows。不支持 Microsoft Windows 10 Home Edition。


          一、注冊紅帽開發(fā)者賬戶

          https://developers.redhat.com/about


          如果有紅帽賬戶,可以直接登錄,然后再點(diǎn)擊加入,沒有紅帽賬戶的話,點(diǎn)擊join now后會自動進(jìn)入紅帽賬戶創(chuàng)建流程。


          二、安裝OpenShift Local 2.0流程(Windows)


          首先訪問https://cloud.redhat.com/openshift/create/local

          安裝步驟請參考文檔,首先下載OpenShift Local 2.0,然后安裝



          在這里我們選擇openshift。

          然后粘貼上面的pull secret,用來從紅帽倉庫拉鏡像。此文件對于OKD也有效



          會自動安裝啟用hyper-v。對電腦性能會有一定影響(約5-8%)。我們后期可以編輯windows啟動選項(xiàng),讓windows以禁用hyper-v模式啟動。

          由于windows啟用hyper-v需要重啟,繼續(xù)配置可能會報(bào)錯。(我是又重啟了一次電腦,圖形下配置成功)



          我們也可在管理員命令下,用crc setup 配置環(huán)境,會比較清楚。



          2.1 openshift 模式

          Red Hat OpenShift Local重大改進(jìn)其中之一是系統(tǒng)托盤已重寫為Electron應(yīng)用程序,以允許跨不同操作系統(tǒng)的一致性和功能。這提供了桌面系統(tǒng)托盤訪問,因此您可以輕松獲取計(jì)算機(jī)運(yùn)行的狀態(tài)、啟動和停止、刪除、跟蹤日志、打開 OpenShift 控制臺、更改配置以及獲取版本信息。


          運(yùn)行之后可以方便的copy登錄命令


          我們同樣可以在這里配置openshift的內(nèi)存和存儲


          在hyper-v管理器里可以看到,至少是16G內(nèi)存才能讓openshift跑的比較順。而要是跑程序的話,24G內(nèi)存應(yīng)該是及格線。(我原來16G內(nèi)存的老mac確實(shí)是跑不動了)



          我們可以在普通命令行 輸入

          crc console --credentials 得到密碼


          同樣,在窗口了敲

          crc oc-env | Invoke-Expression

          得到openshift command line interface的環(huán)境,而鍵入下面命令是在命令行以開發(fā)者身份登錄openshift

          oc login -u developer https://api.crc.testing:6443


          通過web瀏覽器我們可以登錄到openshift local


          我們可以通過切換到開發(fā)者視圖,新建一個項(xiàng)目,也就是k8s里的namespace


          新建項(xiàng)目后,我們可以看到紅帽為我們提供的多種部署容器的方式,以及示例、教程。



          另外切換到管理員視圖,我們還可以看到紅帽和第三方廠商及社區(qū)提供的一些Operators,通過這些Operator,我們可以輕松的部署、管理各種中間件和存儲,安全等工具。



          2.2 podman 模式

          而我們使用podman模式,實(shí)際上體驗(yàn)和dockers desktop類似

          我們創(chuàng)建好環(huán)境后,在托盤菜單上點(diǎn)擊open Console



          我們可以看到如下界面

          我們可以通過鏡像以圖形化的方式創(chuàng)建容器

          也可以以熟悉的docker命令的方式創(chuàng)建、管理容器,只不過命令從docker變成了podman。



          綜上您可以看到,如果您想簡單的體驗(yàn)容器開發(fā),可以使用podman模式。對系統(tǒng)資源占用也小。可以繼續(xù)使用熟悉的docker 命令。而當(dāng)您的程序使用的容器增加,或者需要開發(fā)微服務(wù),需要使用k8s來進(jìn)行容器編排時(shí),那么openshift local模式可以幫助您更快的建立起本地開發(fā)環(huán)境,另外openshift是兼容kubectl命令的,您只需要在openshift local復(fù)制出密鑰,即可通過熟悉的kubectl來使用命令行管理openshift。


          后面是紅帽基于openshift的一個入門教程。主要內(nèi)容是在openshift部署一個基于JAVA的前后端程序。由于是本機(jī)部署。部分涉及拉取github代碼的步驟可能會失敗。僅供參考

          http://wangmt2000.gitee.io/openshift-starter-guides/rhs-openshift-starter-guides/4.8/index.html

          者:小不點(diǎn)啊

          來源:www.cnblogs.com/leeSmall/p/9356535.html

          一、Nginx Rewrite 規(guī)則


          1. Nginx rewrite規(guī)則


          Rewrite規(guī)則含義就是某個URL重寫成特定的URL(類似于Redirect),從某種意義上說為了美觀或者對搜索引擎友好,提高收錄量及排名等。


          語法:


          rewrite <regex> <replacement> [flag]
          關(guān)鍵字 || 正則 || 替代內(nèi)容 || flag標(biāo)記


          Rewrite規(guī)則的flag標(biāo)記主要有以下幾種:


          • last :相當(dāng)于Apache里的(L)標(biāo)記,表示完成rewrite;
          • break:本條規(guī)則匹配完成后,終止匹配,不再匹配后面的規(guī)則
          • redirect:返回302臨時(shí)重定向,瀏覽器地址會顯示跳轉(zhuǎn)后的URL地址
          • permanent:返回301永久重定向,瀏覽器地址欄會顯示跳轉(zhuǎn)后的URL地址


          last和break用來實(shí)現(xiàn)URL重寫,瀏覽器地址欄URL地址不變


          2. Nginx rewrite例子


          a) 例如用戶訪問www.dbspread.com,想直接跳轉(zhuǎn)到網(wǎng)站下面的某個頁面,www.dbspread.com/new.index.html如何來實(shí)現(xiàn)呢?我們可以使用Nginx Rewrite 來實(shí)現(xiàn)這個需求,具體如下:在server中加入如下語句即可:


          效果圖如下:

                          rewrite     ^/$    http://www.dbspread.com/new.index.html  permanent;
          對應(yīng)如下語法:
                          rewrite    <regex>    <replacement>                 [flag];
                          關(guān)鍵字      正則        替代內(nèi)容                    flag標(biāo)記

          正則表達(dá)式說明:

          *代表前面0或更多個字符                +代表前面1或更多個字符
          ?代表前面0或1個字符                  ^代表字符串的開始位置
          $代表字符串結(jié)束的位置                 。為通配符,代表任何字符

          b)例如多個域名跳轉(zhuǎn)到同一個域名,nginx rewrite規(guī)則寫法如下:


          格式:

          rewrite <regex> <replacement> [flag];
          關(guān)鍵字 || 正則 || 替代內(nèi)容 || flag標(biāo)記


          說明:


          • rewrite為固定關(guān)鍵字,表示開始進(jìn)行rewrite匹配規(guī)則、
          • regex部分是 ^/(.*) ,這是一個正則表達(dá)式,匹配完整的域名和后面的路徑地址
          • replacement部分是http://www.dbspread.com/,是取自regex部分( )里的內(nèi)容。匹配成功后跳轉(zhuǎn)到的URL。
          • flag部分 permanent表示永久301重定向標(biāo)記,即跳轉(zhuǎn)到新的 http://www.dbspread.com/ 地址上



          二、Nginx 防盜鏈


          1. 什么是防盜鏈


          比如http://www.dbspread.com/download/av123.rmvb 這個視頻下載地址被其他網(wǎng)站引用,比如在www.test.com的index.html引用download/av123.rmvb就叫盜鏈,我們要禁止這種引用就叫做防盜鏈



          2. 怎么實(shí)現(xiàn)防盜鏈


          在nginx的nginx.conf的server里面配置如下代碼


          三、Nginx 動靜分離

          1. 動靜分離是什么

          Nginx動靜分離是讓動態(tài)網(wǎng)站里的動態(tài)網(wǎng)頁根據(jù)一定規(guī)則把不變的資源和經(jīng)常變的資源區(qū)分開來,動靜資源做好了拆分以后,我們就可以根據(jù)靜態(tài)資源的特點(diǎn)將其做緩存操作,這就是網(wǎng)站靜態(tài)化處理的核心思路。

          2. 動靜分離原理圖

          3. Nginx動靜分離應(yīng)該注意的地方

          1). WEB項(xiàng)目開發(fā)時(shí)要注意,將靜態(tài)資源盡量放在一個static文件夾2). 將static靜態(tài)資源文件夾放到Nginx可以取到的位置3). 頁面要建立全局變量路徑,方便修改路徑4). 修改nginx.conf的location, 匹配靜態(tài)資源請求

          4. Nginx動靜分離步驟

          4.1 準(zhǔn)備一個靜態(tài)資源button.css

          body {
              margin: 10px 20px;
              text-align: center;
              font-family: Arial, sans-serif;
              background-color: red;
          }

          4.2 在/var/local下新建一個static文件夾用來存放靜態(tài)資源button.css

          4.3 在tomcat-8080/webapps/ROOT下的index.html里面引入button.css


          4.4 在nginx的nginx.conf中server節(jié)點(diǎn)新增靜態(tài)資源分離的配置


          對于Nginx基礎(chǔ)配置,推薦之前的:后端實(shí)踐:Nginx日志配置(超詳細(xì))

          4.5 訪問頁面查看效果

          四、Nginx+keepalived 實(shí)現(xiàn)高可用

          1. keepalived是什么

          Keepalived軟件起初是專為LVS負(fù)載均衡軟件設(shè)計(jì)的,用來管理并監(jiān)控LVS集群系統(tǒng)中各個服務(wù)節(jié)點(diǎn)的狀態(tài),后來又加入了可以實(shí)現(xiàn)高可用的VRRP (Virtual Router Redundancy Protocol ,虛擬路由器冗余協(xié)議)功能。因此,Keepalived除了能夠管理LVS軟件外,還可以作為其他服務(wù)(例如:Nginx、Haproxy、MySQL等)的高可用解決方案軟件

          2. keepalived主要功能

          管理LVS負(fù)載均衡軟件實(shí)現(xiàn)LVS集群節(jié)點(diǎn)的健康檢查作為系統(tǒng)網(wǎng)絡(luò)服務(wù)的高可用性(failover)

          3. keepalived故障轉(zhuǎn)移

          Keepalived高可用服務(wù)之間的故障切換轉(zhuǎn)移,是通過 VRRP 來實(shí)現(xiàn)的。在 Keepalived服務(wù)正常工作時(shí),主 Master節(jié)點(diǎn)會不斷地向備節(jié)點(diǎn)發(fā)送(多播的方式)心跳消息,用以告訴備Backup節(jié)點(diǎn)自己還活著,當(dāng)主 Master節(jié)點(diǎn)發(fā)生故障時(shí),就無法發(fā)送心跳消息,備節(jié)點(diǎn)也就因此無法繼續(xù)檢測到來自主 Master節(jié)點(diǎn)的心跳了,于是調(diào)用自身的接管程序,接管主Master節(jié)點(diǎn)的 IP資源及服務(wù)。而當(dāng)主 Master節(jié)點(diǎn)恢復(fù)時(shí),備Backup節(jié)點(diǎn)又會釋放主節(jié)點(diǎn)故障時(shí)自身接管的IP資源及服務(wù),恢復(fù)到原來的備用角色。

          說明:keepalived的主從切換和redis的主從切換是不一樣的,keepalived的主節(jié)點(diǎn)掛了以后,從節(jié)點(diǎn)變?yōu)橹鞴?jié)點(diǎn),之前的主節(jié)點(diǎn)恢復(fù)以后繼續(xù)做主節(jié)點(diǎn)。redis的主節(jié)點(diǎn)掛了以后,重新恢復(fù)以后變?yōu)閺墓?jié)點(diǎn)

          4. keepalived高可用架構(gòu)示意圖

          說明:

          虛擬ip(VIP):192.168.152.200,對外提供服務(wù)的ip,也可稱作浮動ip192.168.152.130:nginx + keepalived master 主192.168.152.129:nginx + keepalived backup 從192.168.152.129:tomcat-8080192.168.152.129:tomcat-8081

          5. keepalived安裝

          環(huán)境準(zhǔn)備:

          centos6、jdk

          虛擬ip(VIP):192.168.152.200,對外提供服務(wù)的ip,也可稱作浮動ip
          192.168.152.130:nginx + keepalived master 主
          192.168.152.129:nginx + keepalived backup 從
          192.168.152.129:tomcat-8080
          192.168.152.129:tomcat-8081

          nginx和tomcat的環(huán)境準(zhǔn)備請查看我的前一篇關(guān)于nginx的文章

          5.1 安裝keepalived的步驟:

          注:192.168.152.129(keepalived從節(jié)點(diǎn)) 與 192.168.152.130(keepalived主節(jié)點(diǎn))先安裝好nginx + keepalived

          下載壓縮包:

          wget www.keepalived.org/software/keepalived-1.3.5.tar.gz

          解壓縮:

          tar -zxvf keepalived-1.3.5.tar.gz

          進(jìn)入解壓縮以后的文件目錄:

          cd keepalived-1.3.5

          編譯安裝:./configure --prefix=/usr/local/keepalived系統(tǒng)提示警告 *** WARNING - this build will not support IPVS with IPv6. Please install libnl/libnl-3 dev libraries to support IPv6 with IPVS.yum -y install libnl libnl-devel再次執(zhí)行./configure --prefix=/usr/local/keepalived系統(tǒng)提示錯誤 configure: error: libnfnetlink headers missingyum install -y libnfnetlink-devel再次執(zhí)行./configure --prefix=/usr/local/keepalived

          make && make install

          到此keepalived安裝完成,但是接下來還有最關(guān)鍵的一步,如果這一步?jīng)]有做后面啟動keepalived的時(shí)候會報(bào)找不到配置文件的錯誤

          Configuration file '/etc/keepalived/keepalived.conf' is not a regular non-executable file

          安裝完成后,進(jìn)入安裝目錄的etc目錄下,將keepalived相應(yīng)的配置文件拷貝到系統(tǒng)相應(yīng)的目錄當(dāng)中。keepalived啟動時(shí)會從/etc/keepalived目錄下查找keepalived.conf配置文件

          mkdir /etc/keepalived

          cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived

          5.2 修改keepalived主節(jié)點(diǎn)192.168.152.130的/etc/keepalived/keepalived.conf配置文件


          5.3 修改keepalived從節(jié)點(diǎn)192.168.152.129的/etc/keepalived/keepalived.conf配置文件

          5.4 檢查nginx是否啟動的shell腳本


          /usr/local/src/check_nginx_pid.sh

          #!/bin/bash
          #檢測nginx是否啟動了
          A=`ps -C nginx --no-header |wc -l`        
          if [ $A -eq 0 ];then    #如果nginx沒有啟動就啟動nginx                        
                /usr/local/nginx/sbin/nginx                #重啟nginx
                if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then    #nginx重啟失敗,則停掉keepalived服務(wù),進(jìn)行VIP轉(zhuǎn)移
                        killall keepalived                    
                fi
          fi


          5.5 192.168.152.130(keepalived主節(jié)點(diǎn))和 192.168.152.129(keepalived從節(jié)點(diǎn))的nginx的配置文件nginx.conf

          user root root; #使用什么用戶啟動NGINX 在運(yùn)行時(shí)使用哪個用戶哪個組
          worker_processes 4; #啟動進(jìn)程數(shù),一般是1或8個,根據(jù)你的電腦CPU數(shù),一般8個
          worker_cpu_affinity 00000001 00000010 00000100 00001000; #CPU邏輯數(shù)——把每個進(jìn)程分別綁在CPU上面,為每個進(jìn)程分配一個CPU
          #pid /usr/local/nginx/logs/nginx.pid
          worker_rlimit_nofile 102400; #一個進(jìn)程打開的最大文件數(shù)目,與NGINX并發(fā)連接有關(guān)系
          
          #工作模式及連接數(shù)上限
          events
          {
            use epoll; #多路復(fù)用IO 基于LINUX2.6以上內(nèi)核,可以大大提高NGINX的性能 uname -a查看內(nèi)核版本號
            worker_connections 102400; #單個worker process最大連接數(shù),其中NGINX最大連接數(shù)=連接數(shù)*進(jìn)程數(shù),一般1GB內(nèi)存的機(jī)器上可以打開的最大數(shù)大約是10萬左右
            multi_accept on;   #盡可能多的接受請求,默認(rèn)是關(guān)閉狀態(tài)
          }
          
          #處理http請求的一個應(yīng)用配置段
          http
          {
            #引用mime.types,這個類型定義了很多,當(dāng)web服務(wù)器收到靜態(tài)的資源文件請求時(shí),依據(jù)請求文件的后綴名在服務(wù)器的MIME配置文件中找到對應(yīng)的MIME #Type,根據(jù)MIMETYPE設(shè)置并response響應(yīng)類型(Content-type)
            include       mime.types; 
            default_type  application/octet-stream; #定義的數(shù)據(jù)流,有的時(shí)候默認(rèn)類型可以指定為text,這跟我們的網(wǎng)頁發(fā)布還是資源下載是有關(guān)系的
            fastcgi_intercept_errors on; #表示接收fastcgi輸出的http 1.0 response code
            charset utf-8;
            server_names_hash_bucket_size 128; #保存服務(wù)器名字的hash表
            #用來緩存請求頭信息的,容量4K,如果header頭信息請求超過了,nginx會直接返回400錯誤,先根據(jù)client_header_buffer_size配置的值分配一個buffer,如果##分配的buffer無法容納request_line/request_header,那么就會##再次根據(jù)large_client_header_buffers配置的參數(shù)分配large_buffer,如果large_buffer還是無#法容納,那么就會返回414(處理request_line)/400(處理request_header)錯誤。
            client_header_buffer_size 4k; 
            large_client_header_buffers 4 32k;
            client_max_body_size 300m; #允許客戶端請求的最大單文件字節(jié)數(shù) 上傳文件時(shí)根據(jù)需求設(shè)置這個參數(shù)
            #指定NGINX是否調(diào)用這個函數(shù)來輸出文件,對于普通的文件我們必須設(shè)置為ON,如果NGINX專門做為一個下載端的話可以關(guān)掉,好處是降低磁盤與網(wǎng)絡(luò)的IO處理數(shù)及#系統(tǒng)的UPTIME
            sendfile on; 
            #autoindex on;開啟目錄列表訪問,適合下載服務(wù)器
            tcp_nopush on; #防止網(wǎng)絡(luò)阻塞
            #非常重要,根據(jù)實(shí)際情況設(shè)置值,超時(shí)時(shí)間,客戶端到服務(wù)端的連接持續(xù)有效時(shí)間,60秒內(nèi)可避免重新建立連接,時(shí)間也不能設(shè)太長,太長的話,若請求數(shù)10000##,都占用連接會把服務(wù)托死
            keepalive_timeout 60;
            tcp_nodelay on; #提高數(shù)據(jù)的實(shí)時(shí)響應(yīng)性
            client_body_buffer_size 512k; #緩沖區(qū)代理緩沖用戶端請求的最大字節(jié)數(shù)(請求多)
          
            proxy_connect_timeout   5; #nginx跟后端服務(wù)器連接超時(shí)時(shí)間(代理連接超時(shí))
            proxy_read_timeout      60; #連接成功后,后端服務(wù)器響應(yīng)時(shí)間(代理接收超時(shí))
            proxy_send_timeout      5; #后端服務(wù)器數(shù)據(jù)回傳時(shí)間(代理發(fā)送超時(shí))
            proxy_buffer_size       16k; #設(shè)置代理服務(wù)器(nginx)保存用戶頭信息的緩沖區(qū)大小
            proxy_buffers           4 64k; #proxy_buffers緩沖區(qū),網(wǎng)頁平均在32k以下的話,這樣設(shè)置
            proxy_busy_buffers_size 128k; #高負(fù)荷下緩沖大小
            proxy_temp_file_write_size 128k; #設(shè)定緩存文件夾大小,大于這個值,將從upstream服務(wù)器傳
          
            gzip on; #NGINX可以壓縮靜態(tài)資源,比如我的靜態(tài)資源有10M,壓縮后只有2M,那么瀏覽器下載的就少了
            gzip_min_length  1k;
            gzip_buffers     4 16k;
            gzip_http_version 1.1;
            gzip_comp_level 2; #壓縮級別大小,最小1,最大9.值越小,壓縮后比例越小,CPU處理更快,為1時(shí),原10M壓縮完后8M,但設(shè)為9時(shí),壓縮完可能只有2M了。一般設(shè)置為2
            gzip_types       text/plain application/x-javascript text/css application/xml; #壓縮類型:text,js css xml 都會被壓縮
            gzip_vary on; #作用是在http響應(yīng)中增加一行目的是改變反向代理服務(wù)器的緩存策略
          
          #日志格式 
          log_format  main '$remote_addr - $remote_user [$time_local] "$request" ' #ip 遠(yuǎn)程用戶 當(dāng)?shù)貢r(shí)間  請求URL
                           '$status $body_bytes_sent "$http_referer" ' #狀態(tài)  發(fā)送的大小  響應(yīng)的頭
                   '"$http_user_agent" $request_time'; #客戶端使用的瀏覽器  頁面響應(yīng)的時(shí)間
          
          #動態(tài)轉(zhuǎn)發(fā)         
          upstream web1 {
              #每個請求按訪問ip的hash結(jié)果分配,這樣每個訪客固定訪問一個后端服務(wù)器,可以解決session的問題。配置了ip_hash就沒有負(fù)載均衡的效果了,每次訪問的都是同一個tomcat
              #ip_hash; 
              #轉(zhuǎn)發(fā)的后端的tomcat服務(wù)器,weight表示轉(zhuǎn)發(fā)的權(quán)重,越大轉(zhuǎn)發(fā)的次數(shù)越多,機(jī)器性能不一樣配置的weight值不一樣     
               server   192.168.152.129:8080 weight=1 max_fails=2 fail_timeout=30s;
               server   192.168.152.129:8081 weight=1 max_fails=2 fail_timeout=30s;
          }
          upstream web2 {
               server   192.168.152.129:8090 weight=1 max_fails=2 fail_timeout=30s;
               server   192.168.152.129:8091 weight=1 max_fails=2 fail_timeout=30s;
          }
          
          server {
              listen       80; #監(jiān)聽80端口
              server_name  www.dbspread.com; #域名
              #rewrite規(guī)則
              index  index.jsp index.html index.htm;
              root   /usr/local/nginx/html; #定義服務(wù)器的默認(rèn)網(wǎng)站根目錄位置
              #重定向
              if ($host != 'www.dbspread.com' ){ 
                      rewrite ^/(.*)$  http://www.dbspread.com/$1  permanent;
                      }
          
              #防盜鏈
               location ~* \.(rmvb|jpg|png|swf|flv)$ { #rmvb|jpg|png|swf|flv表示對rmvb|jpg|png|swf|flv后綴的文件實(shí)行防盜鏈
                          valid_referers none blocked  www.dbspread.com; #表示對www.dbspread.com此域名開通白名單,比如在www.test.com的index.html引用download/av123.rmvb,無效
                          root   html/b;
                          if ($invalid_referer) { #如果請求不是從www.dbspread.com白名單發(fā)出來的請求,直接重定向到403.html這個頁面或者返回403 
                               #rewrite ^/ http://www.dbspread.com/403.html;
                               return 403;
                          }
                  }
          
              #監(jiān)聽完成以后通過斜桿(/)攔截請求轉(zhuǎn)發(fā)到后端的tomcat服務(wù)器
              location / 
                  {
                      #如果后端的服務(wù)器返回502、504、執(zhí)行超時(shí)等錯誤,自動將請求轉(zhuǎn)發(fā)到upstream負(fù)載均衡池中的另一臺服務(wù)器,實(shí)現(xiàn)故障轉(zhuǎn)移。
                      proxy_next_upstream http_502 http_504 error timeout invalid_header;
                      proxy_set_header Host  $host; #獲取客戶端的主機(jī)名存到變量Host里面,從而讓tomcat取到客戶端機(jī)器的信息
                      proxy_set_header X-Real-IP $remote_addr; #獲取客戶端的主機(jī)名存到變量X-Real-IP里面,從而讓tomcat取到客戶端機(jī)器的信息
                      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                      #rewrite     ^/$    http://www.dbspread.com/new.index.html  permanent;#用戶訪問www.dbspread.com,想直接跳轉(zhuǎn)到網(wǎng)站下面的某個頁面:www.dbspread.com/new.index.html
                      proxy_pass http://web1; #跳轉(zhuǎn)到對應(yīng)的應(yīng)用web1
                  }
          
                 # location ~ .*\.(php|jsp|cgi|shtml)?$ #動態(tài)分離 ~匹配 以.*結(jié)尾(以PHP JSP結(jié)尾走這段)
                 #  {
                 #     proxy_set_header Host  $host;
                 #        proxy_set_header X-Real-IP $remote_addr;
                 #        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                 #        proxy_pass http://jvm_web2;
                 # }
          
                  #靜態(tài)分離 ~匹配 以.*結(jié)尾(以html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css結(jié)尾走這段),當(dāng)然不是越久越好,如果有10000個用戶在線,都保存幾個月,系統(tǒng)托跨
                  location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ 
                  {
                      root /var/local/static; #靜態(tài)資源存放在nginx的安裝機(jī)器上
                      #proxy_pass http://www.static.com; #靜態(tài)資源也可存放在遠(yuǎn)程服務(wù)器上
                      expires    30d;
                  }
          
                  #日志級別有[debug|info|notice|warn|error|crit]  error_log 級別分為 debug, info, notice, warn, error, crit  默認(rèn)為crit, 生產(chǎn)環(huán)境用error 
                  #crit 記錄的日志最少,而debug記錄的日志最多
                  access_log  /usr/local/logs/web2/access.log main;
                  error_log   /usr/local/logs/web2/error.log  crit;
          
              }
          
          
          }


          到這一步環(huán)境準(zhǔn)備已完成,相關(guān)的配置也修改完成,下面我們來查看效果


          5.6 配置hosts域名映射


          192.168.152.200  www.dbspread.com

          注意:這里192.168.152.200 是keepalived里面virtual_ipaddress配置的虛擬ip

           virtual_ipaddress {
                  192.168.152.200 # 定義虛擬ip(VIP),可多設(shè),每行一個
              }


          到這一步環(huán)境準(zhǔn)備已完成,相關(guān)的配置也修改完成,下面我們來查看效果


          5.7 分別啟動192.168.152.129的兩個tomcat


          5.8 分別啟動192.168.152.130(keepalived主節(jié)點(diǎn))和

          192.168.152.129(keepalived從節(jié)點(diǎn))的keepalived的

          啟動命令:


          /usr/local/keepalived/sbin/keepalived  

          可以看到keepalived和nginx都啟動了

          在瀏覽器輸入www.dpspread.com域名訪問

          5.9 下面我們停掉主節(jié)點(diǎn)192.168.152.130的keepalived和nginx

          可以看到從節(jié)點(diǎn)變?yōu)橹鞴?jié)點(diǎn)了

          在瀏覽器輸入地址www.dpspread.com訪問,可以看到訪問正常

          5.10 下面我們重新啟動主節(jié)點(diǎn)192.168.152.130

          可以看到主節(jié)點(diǎn)重新啟動以后變?yōu)橹鞴?jié)點(diǎn)了

          之前變?yōu)橹鞴?jié)點(diǎn)的從節(jié)點(diǎn)又變回從節(jié)點(diǎn)了

          到此keepalived+nginx的高可用完美完成

          果說論壇近期最火的設(shè)備,PNA家的nBridge+無疑會是眾人的首選,nBridge+「事件」最初原因何起九段也沒有詳細(xì)爬文,但最終的結(jié)果對于發(fā)燒友來說一定是件好事。也正是因?yàn)檫@一事件,九段對于nBridge+這臺設(shè)備突然有了濃厚的興趣,加之手中正好有dCS bridge等等幾臺同類型產(chǎn)品,遂于近日入手一臺,對比把玩多有感悟,利用年末小閑暇亂寫幾句。

          不知道喜歡音樂的你是從何時(shí)開始聆聽串流音樂的?在九段身邊的很多「老」燒友現(xiàn)在還是不聽的,因?yàn)樗麄冇X得串流太復(fù)雜總是弄不清細(xì)節(jié),還有「香爐」太多,不能很好的把控最終的聲音。

          但九段自己是聽串流音樂的,而且聽了好多年。早些年,串流音樂還不盛行,數(shù)字播放器仍停留在簡單的外掛硬盤或抓軌再播放等簡單功能上,九段在那個時(shí)候就開始接觸數(shù)字播放產(chǎn)品。后來,九段購入了iPhone 4手機(jī),我開始透過Apple Airport Express做無線播放,還記得設(shè)定完成后,第一次透過手機(jī)選曲、播放,那種感覺真的好棒,直至今天依然記憶猶新。

          不過,那個時(shí)候九段與身邊的「老」音響迷們一樣,認(rèn)為這種數(shù)字串流播放根本就是花拳繡腿,與實(shí)體唱片相比根本不在一個量級。因?yàn)橹蟮暮枚嗄陼r(shí)間,我在自家系統(tǒng)上依然堅(jiān)持聆聽實(shí)體唱盤,而串流播放只是一個點(diǎn)綴。

          直到一日,Apple推出了Apple Music,偶然的機(jī)會九段訂閱了一年的服務(wù),這才算是一入「泥潭」再無回身可能。雖然當(dāng)時(shí)的Apple Music國區(qū)資源還不夠豐富,好在它的資料庫成長速度驚人,大廠名篇基本都有涉獵,實(shí)在找不到的還可以換到美區(qū)去緩存下來。對于一名傳統(tǒng)唱盤用家,Apple Music的全新使用感受真的太具吸引力。不足之處,Apple Music的資源多為256kbps的AAC,音質(zhì)非常欠奉,隨身路上聆聽是可以接受的,但回到家中安靜聆聽卻是很難讓人「安坐」。

          很快,一類叫做Roon Ready的器材出現(xiàn)了,配合Roon軟件使用,這簡直就是為音樂發(fā)燒友量身定做的產(chǎn)品,從此一用成癮,就此幾乎徹底拋棄iRiver與iTunes。利用Roon的整合功能,九段輕松的把Tidal、Qubuz的服務(wù)加入Roon。即使在一些并不高班的Roon Ready設(shè)備下,Tidal、Qubuz上的這些音樂資源,哪怕是普通的16bit/44.1kHz的音樂也有著非常優(yōu)異的聽感。當(dāng)然,最讓人興奮的還是你一下?lián)碛辛顺汕先f首頂級品質(zhì)的音樂曲庫,而且它還在不斷的更新中。這種全新的、超越以往實(shí)體唱片可以給予的美妙感受也是促使九段開始研究并入手高級「Bridge」的最大動力。

          「Bridge」到底是什么?

          拿今天要講的PNA nBridge+為例,簡單來說它就是一部連接音樂與硬件DAC解碼的「橋梁」。嚴(yán)格來說,這座「橋梁」是專門為數(shù)字音樂串流來服務(wù)的,包括本地?cái)?shù)字音樂以及網(wǎng)路上的串流資源。比如,PNA nBridge+內(nèi)置了Roon、UPnP以及HQ Player三種主流APP來實(shí)現(xiàn)對網(wǎng)上及網(wǎng)內(nèi)數(shù)字音樂的管理、傳輸與播放。

          我們只需要將PNA nBridge+插上網(wǎng)線聯(lián)入家中的局域網(wǎng),通過手機(jī)瀏覽器APP輸入pna.local網(wǎng)址就可以進(jìn)入機(jī)器的設(shè)置界面,然后整個機(jī)器的所有操作均可以在這個「簡單」的界面里完成。具體的操作與控制方式我就不在此做過多介紹了,如果有興趣了解的小伙伴可以參考一下耳機(jī)俱樂部小白版主與長弓版主的使用分享(http://www.headphoneclub.com/thread-729073-1-5.htmlhttp://www.headphoneclub.com/thread-732691-1-5.html)。

          做完以上,我們就可以把PNA nBridge+后面通過USB、RCA同軸、AES甚至I2S等數(shù)字信號線連接到自己的DAC解碼器上開始正常使用了。自此你已經(jīng)可以完全擺脫實(shí)體唱片的束縛,不再需要費(fèi)心調(diào)試播放參數(shù),更換碟片,購置唱片架。。。。。。坐在自己的系統(tǒng)前,掏出手機(jī),輕輕點(diǎn)動手指,美妙的音符就飄進(jìn)了耳中。

          PNA nBridge+可能是目前最適合中國發(fā)燒友的頂級「橋」

          九段在使用PNA nBridge+的這段時(shí)間里發(fā)現(xiàn)其在設(shè)計(jì)上有一些高明之處,首先是軟件方面。PNA的控制是由登陸自己內(nèi)置的網(wǎng)頁來實(shí)現(xiàn)的,不同于一些品牌產(chǎn)品必須安裝獨(dú)立的控制APP,不管是iOS用戶還是Android用戶,都無需擔(dān)心適配。同時(shí),不管是用Roon集成Tidal、Qubuz來聆聽網(wǎng)路串流音樂,還是使用各種免費(fèi)UPnP軟件來播放局域網(wǎng)內(nèi)電腦、NAS上的本地音樂,甚至直接把硬盤/U盤插入PNA nBridge+直接播放,PNA nBridge+在軟件上都是全面支持的。

          然后是硬件方面,這也是PNA最大的優(yōu)勢部分。雖然PNA是一家新晉品牌,但它的研發(fā)團(tuán)隊(duì)卻在業(yè)內(nèi)擁有相當(dāng)?shù)拿麣狻NA的核心設(shè)計(jì)師脫身于華為網(wǎng)絡(luò)設(shè)備研發(fā)部門,同時(shí)也是港灣科技的開創(chuàng)團(tuán)隊(duì)成員之一。港灣科技是一家脫胎于華為的創(chuàng)業(yè)公司,曾經(jīng)創(chuàng)造了中國網(wǎng)絡(luò)公司三年銷售額超過十億元人民幣的奇跡。這家公司當(dāng)年掌控了路由器核心芯片自主研發(fā)能力,因?yàn)槌砷L速度過快甚至嚴(yán)重威脅到了業(yè)界龍頭華為的江湖地位,所以其在創(chuàng)立第六個年頭被華為動用100億現(xiàn)金「殺死」。以上,這些硬實(shí)力在PNA nBridge+的設(shè)計(jì)上體現(xiàn)的淋漓盡致。

          比如大家最為關(guān)心的信號隔離方面,PNA nBridge+使用內(nèi)置的6節(jié)松下18650電池采用3并2串的方式為機(jī)器的內(nèi)網(wǎng)部分供電,而線性電源則負(fù)責(zé)機(jī)器的外網(wǎng)線路供電及電池充電,做到了最大限度的隔離內(nèi)外網(wǎng)路的串?dāng)_以及市電雜訊對于機(jī)器內(nèi)部信號的影響。同時(shí),機(jī)器內(nèi)部采用獨(dú)立模塊安裝,數(shù)字、網(wǎng)路、供電以及模擬部分全部采用獨(dú)立位置封閉安裝,有效避免了各系統(tǒng)間的信號二次干擾。除此,PNA還使用了多層電路板來優(yōu)化傳輸線路間的干擾問題,并通過取消無線功能、顯示器以及小型繼電器等明顯擁有干擾的功能與配件的使用,從而讓PNA nBridge+的信號純度得到了最佳的優(yōu)化,這么徹底的信號隔離設(shè)計(jì)在業(yè)界是罕見的。

          還有一點(diǎn)設(shè)計(jì)非常方便,也是九段最愛的功能,那就是PNA nBridge+支持I2S數(shù)字輸出。而熟悉I2S數(shù)字輸出的小伙伴一定非常清楚這種同步前端ARM,高質(zhì)量傳輸?shù)脑搭^數(shù)字信號質(zhì)量是明顯好過AES/EBU等數(shù)字接口的,但它也有一個非常「惱人」的問題就是I2S接口接線定義并不統(tǒng)一,每一家品牌都有所不同,所以以往這種接口多只能用于統(tǒng)一品牌的兩臺數(shù)字設(shè)備間的傳輸,比如dCS、Accuphase、Esoteric等等。但是,PNA nBridge+這次通過軟硬件配合實(shí)現(xiàn)了I2S接口定義的靈活設(shè)置,用戶通過網(wǎng)頁控制界面可以方便的把PNA nBridge+的I2S接口定義為Gustard、PS Audio、W4S、Holo Audio、L.K.S、Rockna、Denafrip等等主流DAC廠商標(biāo)準(zhǔn),從而使這些DAC都可以享受PNA nBridge+的I2S高質(zhì)量數(shù)字信號。

          數(shù)字音源中難得的「模擬」聲,低音鑒真章!

          九段多年來把玩過不下十臺數(shù)字音源,各種檔次類型的產(chǎn)品都有,它們之間最大的差異就是聲音的「模擬」味。這里的「模擬」味與「數(shù)字」聲相對,并非指老LP、電子管機(jī)器發(fā)出的那種信噪比不高的聲音,而是指沒有「鋒利」高頻毛刺、清瘦聲音骨架以及干薄低頻的聲音。尤其是低頻部分,有重量且兼顧解析的低音被老燒友稱為「權(quán)威」的低頻,九段一直認(rèn)為這是判別一臺音響設(shè)備檔次高與低的最直觀標(biāo)準(zhǔn)。這次,PNA nBridge+的表現(xiàn)如何呢?

          九段以Alice Sara Ott彈奏、Thomas Hengelbrock指揮慕尼黑愛樂的老柴第一鋼琴協(xié)奏曲為例。第一樂章開始,作曲家寫下一個辨識度極高的樂曲類型,由法國號起首的四個下行音符響起,然后接上一聲樂團(tuán)齊奏,繼而是鋼琴以固定三組和弦的上行加入,就此揭開樂曲序幕。這個雄壯的序幕,PNA nBridge+給予音樂十足的勁力,輕松超過九段的NAIM CDX2 CD唱機(jī)的聽感。現(xiàn)場的那種沖擊感與恢弘都是非常出眾的,聽鋼琴一直向下的獨(dú)奏,重壓和弦下琴弦震動的質(zhì)地,這些畫面實(shí)在寫實(shí),而且和弦?guī)в惺愕闹亓扛信c權(quán)威感,說服力充足。Alice雖然是一介女子,但彈到這里絲毫不讓須眉,那勁道委實(shí)攝人。第二主題情緒漸緩,Alice指下的鋼琴更佳柔美,不僅跟樂團(tuán)對話,自己雙手也以不同聲部對話著,音樂的層次就這樣展開。木管悠然的唱和,弦樂緩緩輕語,這里的樂器質(zhì)感非常突出。PNA nBridge+不僅能發(fā)揮前面雄渾開朗的齊唱,還能詮釋這里委婉而柔美的氣質(zhì)。而且,不管是鋼琴張力十足地以和弦直探低音,或是低音弦樂用以襯底的弄弦聲浪,聽起來皆是實(shí)實(shí)在在,很有存在感的。

          難得有血有肉的人聲表現(xiàn)

          再舉一張人聲演唱為例,Sarah Vaughan在1985年的巴黎現(xiàn)場演唱會。「Wave」一曲中,Sarah的聲腔多變,音色多端,加上她善用拉長音來制造尾音的多重變化,加上音量起伏,單是她的歌聲,就夠精彩的了。三重奏輕柔地相伴,大多時(shí)候,貝斯、鼓組和鋼琴都在扮演節(jié)奏的角色,但鋼琴時(shí)而會跳出來轉(zhuǎn)成合音或?qū)ΤNA nBridge+讓Sarah的歌聲聽起來特別有血有肉,卻不因添附的厚度和溫度以致失去活潑性,反倒因此讓我們更聚焦在Sarah的歌聲上。PNA nBridge+讓她的歌聲從一個漆黑的舞臺上,以探照燈照射出天后的身影。那時(shí)候Sarah已經(jīng)年過六旬,但歌聲卻顯出成熟老練,那些轉(zhuǎn)音、抖音、滑音的技巧都堪稱完美,歌唱之間,顯出十足的自信。聽完「Wave」之后,再去聽全然清唱的「Summertime」,就能了解那個舞臺和探照燈的比喻了,也就能認(rèn)識到年逾花甲的天后那讓后輩汗顏的歌唱實(shí)力。

          扔掉實(shí)體唱盤,可以留用的未來音源,寫在最后

          PNA nBridge+的聲音有別于大部分九段聽過的數(shù)字音源產(chǎn)品,它擁有非常可觀的素質(zhì),但它對于素質(zhì)的表達(dá)并不是傳統(tǒng)數(shù)字音源常用的方式,PNA nBridge+不刺激不追求極限更沒有一耳朵越級PK的能力,但它在播放高水準(zhǔn)數(shù)字音樂時(shí)給出了明顯好過同價(jià)位傳統(tǒng)CD轉(zhuǎn)盤的素質(zhì),同時(shí)還保留了優(yōu)秀實(shí)體唱片的聽感,一種「實(shí)在」、「真實(shí)」的聽感。尤其是在中低頻部分完全聽不出任何的「數(shù)字」味道,我想這也是很多「老燒友」抵觸數(shù)字音源的最主要原因。

          對于這臺最新版本的PNA nBridge+,九段準(zhǔn)備長期留用下去,如果正好你也準(zhǔn)備選購一臺類似的頂級數(shù)字音源,不妨可以了解試聽下這臺機(jī)器,我想它一定可以改變你對于數(shù)字音源的一些認(rèn)知。

          我是九段,咱們下期再見!「完」


          主站蜘蛛池模板: 国产一区在线电影| 日亚毛片免费乱码不卡一区| 精品一区二区三区免费观看| 精品久久国产一区二区三区香蕉| 一区二区3区免费视频| 国产精品高清一区二区三区不卡| eeuss鲁片一区二区三区| 国产伦精品一区二区三区视频金莲| 精品一区二区三区东京热 | 综合人妻久久一区二区精品 | 无码aⅴ精品一区二区三区| 久久一区二区三区精华液使用方法| 日本一区二区三区在线视频观看免费| 国产精品乱码一区二区三区| 日韩一区二区三区电影在线观看| 亚洲国产成人一区二区三区| 高清国产精品人妻一区二区 | 无码日韩精品一区二区免费暖暖| 丝袜人妻一区二区三区网站| 在线精品亚洲一区二区三区| 国产精品乱码一区二区三区| 国产成人精品一区二区三区无码| 无码日韩精品一区二区人妻| 冲田杏梨高清无一区二区| 中文字幕在线一区| 色欲AV蜜臀一区二区三区 | 91在线一区二区三区| 麻豆一区二区免费播放网站| 国产一区二区三区在线免费观看| 一区二区三区四区在线观看视频| 中文字幕一区二区免费| 农村乱人伦一区二区| 丰满岳乱妇一区二区三区| 精品少妇一区二区三区视频| 精品无码一区在线观看| 国产激情一区二区三区 | 亚洲国产激情在线一区| 国产在线精品一区二区三区直播| 国产91久久精品一区二区| 熟妇人妻系列av无码一区二区| 成人精品一区二区电影|