一、更新yumphp
sudo yum update
二、刪除dotnet core sdknginx
sudo yum erase libunwind libicu
三、刪除連接web
sudo rm -rf /usr/local/bin
四、寶塔搭建瀏覽器
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
在安裝.NET Core以前,您須要註冊Microsoft產品Feed。 這隻須要作一次。 首先,註冊Microsoft簽名密鑰,而後添加Microsoft產品Feed。命令以下:websocket
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo sh -c 'echo -e "[packages-microsoft-com-prod]\nname=packages-microsoft-com-prod \nbaseurl=https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo'
yum install libunwind libicu -y
sudo yum install dotnet-sdk-2.1
sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
yum install libunwind libicu -y
sudo yum install dotnet-sdk-2.1
dotnet --version
一、找到寶塔爲你的網站建立號的WWW站點目錄而後你在裏面建立一個存放Core項目的站點目錄 好比(Pulish文件夾-意味發佈)cookie
(在頂級目錄www/wwwroot 具體 一、cd ../ 二、ls查看是否有www目錄 三、cd www/wwwroot 四、mkdir Pulish -建立文件夾裏面就是最終放入Core項目源碼)網絡
二、壓縮Core項目源碼爲rar格式, Pulish.rar 上傳到wwwroot 內(以前建立的Pulish文件夾就能夠刪除,直接解壓就替換掉了)curl
順便刪除默認index文件socket
三、運行命令: dotnet Ban.dlljsp
測試
跑起來了 可是出問題了
Unable to bind to http://localhost:5000 on the IPv6 loopback interface: 'Cannot assign requested address'.
'沒法分配請求的地址'。
dotnet Ban.dll --server.urls http://*:8001
仍是不行
-------------------------------------
而後我看了看
改變
更改
public class Program { public static void Main(string[] args) { CreateWebHostBuilder(args).Build().Run(); } public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(args) .UseKestrel() .UseUrls("http://127.0.0.1:8001") //更改啓動端口 .UseContentRoot(Directory.GetCurrentDirectory()) .UseStartup<Startup>(); }
仍是不行,最終我新建項目測試了一下,能夠了(具體緣由是個人項目問題)
3、反向代理
用Nginx代理登陸出現
以及刷新出現
通過分析是nginx 代理的問題,我就直接經過網址訪問,
猜想一更改,不指定127.0.0.1以*代替
public class Program { public static void Main(string[] args) { CreateWebHostBuilder(args).Build().Run(); } public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(args) .UseKestrel() .UseUrls("http://*:8005") //更改啓動端口 .UseContentRoot(Directory.GetCurrentDirectory()) .UseStartup<Startup>(); }
二、經過直接訪問(不通過代理) 阿里雲防火牆打開8005,寶塔打開端口8005,經訪問
解決方案:
除了ws標識的請求,都轉到fast_cgi上了
配置文件:
#PROXY-START/ location / { expires 12h; if ($request_uri ~* "(php|jsp|cgi|asp|aspx)") { expires 0; } proxy_pass http://127.0.0.1:8005; #持久化鏈接相關配置 #proxy_connect_timeout 30s; #proxy_read_timeout 86400s; #proxy_send_timeout 30s; #proxy_http_version 1.1; #proxy_set_header Upgrade $http_upgrade; #proxy_set_header Connection "upgrade"; add_header X-Cache $upstream_cache_status; #Set Nginx Cache add_header Cache-Control no-cache; } #signalr字母全小寫 http://www.logr.cn/signalr?id=TAdbYg8JM4oE2HfUVeV9uQ location /signalr { expires 12h; if ($request_uri ~* "(php|jsp|cgi|asp|aspx)") { expires 0; } ##僅首字母小寫因Signalr連接必須首字母小寫 proxy_pass http://127.0.0.1:8005/signalR; #連接超時 proxy_connect_timeout 4s; proxy_read_timeout 3600s; proxy_send_timeout 12s; #配置獲取真實ip proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #升級http1.1到 websocket協議 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; #持久化鏈接相關配置 #proxy_connect_timeout 30s; #proxy_read_timeout 86400s; #proxy_send_timeout 30s; #proxy_http_version 1.1; #proxy_set_header Upgrade $http_upgrade; #proxy_set_header Connection "upgrade"; add_header X-Cache $upstream_cache_status; #Set Nginx Cache add_header Cache-Control no-cache; } #PROXY-END/
精簡配置
#PROXY-START/ location / { expires 12h; if ($request_uri ~* "(php|jsp|cgi|asp|aspx)") { expires 0; } proxy_pass http://127.0.0.1:8005; } location /signalr { expires 12h; if ($request_uri ~* "(php|jsp|cgi|asp|aspx)") { expires 0; } proxy_pass http://127.0.0.1:8005/signalR; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } #PROXY-END/
本來寶塔三個配置文件分別爲(Nginx主配置文件,站點配置文件,代理配置文件)
我直接站點配置裏面寫代理配置了 整合後的
server { listen 80; server_name www.logr.cn; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; #proxy_set_header Connection ""; #proxy_http_version 1.1; proxy_pass http://127.0.0.1:8005/; } location /signalr { proxy_pass http://127.0.0.1:8005/signalR; proxy_set_header Host $host:$server_port; proxy_set_header Remote_Addr $remote_addr; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } }
可是 強刷新,還會出現問題:
不代理,這種狀況就不會出現,我是放入signalr連接成功觸發獲取用戶列表的原理這種場景的,就仍是代理強刷新的問題。
得出結論 一、IP +8005沒有問題 二、代理80端口域名訪問有問題三、域名加8005 也有問題(這種問題概率僅僅小一些,可是會出現)
猜想:若是是nginx未及時響應應該是報錯, 我這種狀況是原資源的連接被302了,302就是強制跳轉,應該是網絡傳輸的那個環節出的問題
整個網絡請求通過域名解析(在須要域名解析的時候),網絡傳輸,不肯定哪一個環節坑了你
解決代理問題localhost和從新加載的問題
查找問題
強刷新偶出現頁面加載 logr.cn強制跳轉localhost
signalr加載也會出現localhost又強制跳轉localhost
而後我測試了一下
使用精簡代理測試了 一下
server { listen 80; server_name test.ffreader.cn; location / { proxy_pass http://127.0.0.1:8005/; } location /signalr { proxy_pass http://127.0.0.1:8005/signalR; #配置WS proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } }
強刷新,居然沒有問題,徹底沒有任何問題。
我準備問阿里雲客服
準備話術是(由於是域名有關係的):域名解析被污染(域名解析被污染是否是被污染了),當我刷新頁面的時候,整個網絡請求通過域名解析,網絡傳輸,出現302把我原資源強制跳轉了localhost的這種狀況。
等待一會,就斷開。
[program:ban] directory=/www/wwwroot/www.logr.cn/publish command=dotnet Ban.dll autostart=true autorestart=true [supervisord]
新手出現的錯誤
一、Error: .ini file does not include supervisorctl section