繼續上篇的內容,本篇來學習下nginx的配置和守護進程supervisor的使用。 一、Nginx安裝及配置 (1)安裝nginx (2)啟動nginx (3)配置防火牆 成功完成以上配置後,測試nginx是否可以訪問,本地瀏覽器輸入127.0.0.1,成功顯示如下 (4)修改配置文件轉發.net ...
繼續上篇的內容,本篇來學習下nginx的配置和守護進程supervisor的使用。
一、Nginx安裝及配置
(1)安裝nginx
sudo yum install epel-release #添加源 sudo yum install nginx #安裝nginx
(2)啟動nginx
sudo systemctl start nginx
sudo systemctl enable nginx
(3)配置防火牆
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent #開放80埠 systemctl restart firewalld #重啟防火牆以使配置即時生效
成功完成以上配置後,測試nginx是否可以訪問,本地瀏覽器輸入127.0.0.1,成功顯示如下
(4)修改配置文件轉發.net core應用程式
創建並編輯一個新的配置文件netcore.conf,命令如下
[root@localhost nginx]# cd /etc/nginx/conf.d [root@localhost conf.d]# touch netcore.conf [root@localhost conf.d]# vim netcore.conf
netcore.conf配置文件內容如下:
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 $http_host; proxy_cache_bypass $http_upgrade; } }
編輯配置文件nginx.conf(預設包含了自定義的配置文件內容),命令如下
[root@localhost conf.d]# vim /etc/nginx/nginx.conf
註釋預設的80埠,如下
重啟nginx,命令如下
[root@localhost conf.d]# systemctl restart nginx
重新啟動.netcore應用,
[root@localhost wuyi]# cd /home/wwwroot/MyWeb/ [root@localhost MyWeb]# dotnet MyCoreWebApp.dll
外部系統訪問centos的Ip192.168.195.128,悲劇地錯誤又出現了
最後通過百度解決了上面的問題,跟SELinux保護機制有關,依次執行如下三條命令:
yum install policycoreutils-python sudo cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginx sudo semodule -i mynginx.pp
外部系統(我的是win10)再次訪問centos的Ip192.168.195.128,已經成功轉發。
二、安裝與配置守護服務Supervisor
(1)安裝supervisor
[root@localhost wuyi]# yum install python-setuptools [root@localhost wuyi]# easy_install supervisor
(2)配置supervisor
[root@localhost wuyi]# mkdir /etc/supervisor [root@localhost wuyi]# echo_supervisord_conf > /etc/supervisor/supervisord.conf
(3)編輯配置文件supervisord.conf
[root@localhost wuyi]# vim /etc/supervisor/supervisord.conf
把最後的include部分改為為如下代碼(註意要把前面的分號“;”去掉):
(4)啟動服務(如已經啟動,此步可省略)
[root@localhost wuyi]# supervisord -c /etc/supervisor/supervisord.conf
(5)使修改的配置文件生效
[root@localhost wuyi]# supervisorctl reload
(6)配置對.NET Core應用的守護
創建一個MyCoreWebApp.conf文件,拷貝到“/etc/supervisor/conf.d/MyCoreWebApp.conf”下,文件內容如下:
[program:MyCoreWebApp] command=dotnet MyCoreWebApp.dll ; 運行程式的命令 directory=/home/wwwroot/MyWeb/ ; 命令執行的目錄 autorestart=true ; 程式意外退出是否自動重啟 stderr_logfile=/var/log/MyCoreWebApp.err.log ; 錯誤日誌文件 stdout_logfile=/var/log/MyCoreWebApp.out.log ; 輸出日誌文件 environment=ASPNETCORE_ENVIRONMENT=Production ; 進程環境變數 user=root ; 進程執行的用戶身份 stopsignal=INT
(7)驗證dotnet進程是否啟動,查詢下進程MyCoreWebApp.dll是否存在,存在則可以再瀏覽器中打開了
[root@localhost wuyi]# ps -ef|grep MyCoreWebApp
三、設置Supervisor服務開機啟動和遠程管理
(1)創建配置文件
創建一個supervisord.service文件,拷貝到“/usr/lib/systemd/system/supervisord.service”下,文件內容如下:
[Unit] Description=Supervisor daemon [Service] Type=forking ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf ExecStop=/usr/bin/supervisorctl shutdown ExecReload=/usr/bin/supervisorctl reload KillMode=process Restart=on-failure RestartSec=42s [Install] WantedBy=multi-user.target
(2)設置supervisord服務為開機啟動
[root@localhost system]# systemctl enable supervisord
(3)supervisor遠程管理
修改配置文件“vim /etc/supervisor/supervisord.conf”的“inet_http_server“節點,修改保存後再開放防火牆9001埠。
(配置文件節點更改後內容如下)
[inet_http_server] port=192.168.195.128:9001 ;本機ip 加埠 username=admin ;登陸賬號,可以不設 password=123456 ;登陸賬戶,可以不設
(相關命令如下)
[root@localhost system]# vim /etc/supervisor/supervisord.conf [root@localhost system]# supervisorctl reload Restarted supervisord [root@localhost system]# firewall-cmd --zone=public --add-port=9001/tcp --permanent success [root@localhost system]# systemctl restart firewalld
配置完成,在瀏覽器即可正常訪問
終於寫完了,下篇將繼續研究ASP.NET Core負載均衡集群搭建.....