CentOS 初體驗十五:阿里雲安裝Nginx
什麼是 Nginx
Nginx
是俄羅斯人編寫的十分輕量級的 HTTP 伺服器,它的發音為“engine X”,是一個高效能的 HTTP 和反向代理伺服器,同時也是一個 IMAP/POP3/SMTP 代理伺服器。Nginx 是由俄羅斯人 Igor Sysoev 為俄羅斯訪問量第二的 Rambler.ru 站點開發的,它已經在該站點執行超過兩年半了。Igor Sysoev 在建立的專案時,使用基於 BSD 許可。
Nginx 因為它的穩定性、豐富的模組庫、靈活的配置和低系統資源的消耗而聞名,不僅是因為響應靜態頁面的速度非常快,而且它的模組數量達到 Apache 的近 2/3.
系統
- 平臺:阿里雲
- CPU: 2核
- 記憶體: 4 GB
- 作業系統: CentOS 7.4 64位
安裝 Nignx
安裝 nignx
yum install nginx
通過上面的命令,就可以正常的安裝 nginx
,安裝完成後, 可以通過以下命令,啟動 nginx
。
//啟動nginx
systemctl start nginx
檢視 nginx
執行狀態
//檢視執行狀態
systemctl status nginx
狀態如下
在瀏覽器中輸入阿里雲公網 ip , 就可以看到 nginx 啟動頁面了。
修改 nginx 埠
nginx
預設埠是 80 埠
, 如果有其他服務佔用了 80
nginx
指定新的埠,比如 8084 埠
。
修改 nginx 埠配置
配置埠的檔名字為 nginx.conf
, 如果我們不知道這個檔案在什麼位置,我們可以用 find
命令找到這個檔案的位置。
find / -name nginx.conf
結果是:
nginx.conf
在 /etc/nginx/
目錄。我們用 vim 開啟這個檔案,將
server {
listen 80 default_server;
listen [::]:80 default_server;
....
....
}
改為
server {
listen 8084 default_server;
listen [::]:8084 default_server;
....
....
}
儲存退出就可以了,這樣我們就把 nginx
預設 80 埠
修改成了 8084
埠。但是這還不行,因為我們是在阿里雲的環境裡面,需要在阿里雲伺服器的安全組開啟 8084 埠
。
開啟阿里雲 8084 埠
安全組埠開啟了以後,我們重啟 nginx 服務
systemctl restart nginx
然後在瀏覽器輸入 http://47.94.230.26:8084/
, 就可以在看到
至此我們的埠已經修改完成了。
其他命令
systemctl start nginx #啟動
systemctl stop nginx #停止
systemctl restart nginx #重啟
systemctl status nginx #檢視執行狀態
systemctl enable nginx #開機啟動
nginx -v #檢視nginx版本號
service nginx reload #重新載入配置檔案
vi /etc/nginx/conf.d/default.conf #開啟配置檔案
代理轉發
首先開啟配置檔案
vi /etc/nginx/conf.d/default.conf #開啟配置檔案
在配置檔案的末尾加上轉發規則
- 訪問
news.baidu.net/aotshare
時,自動重定向到http://www.baidu.com
- 訪問
news.baidu.net
時,轉發到http://127.0.0.1:8080
server {
listen 80;
server_name news.baidu.net;
location /aotshare{
#重定向
return http://www.baidu.com;
}
location /{
#訪問該地址時,需要轉發
proxy_pass http://127.0.0.1:8080;
}
}
配置完成後,測試一下配置的內容是正常的
nginx -t
測試效果如圖:
最後重新載入配置檔案
service nginx reload
檢視 nginx 轉發日誌
tail -f /var/log/nginx/access.log
注意事項
如果是新機器,nginx 代理不通過, 執行 vim /var/log/nginx/error.log
檢查nginx的log會發現log提示許可權不足,可是我們已經把檔案許可權付給了nginx。
最終得知是因為selinux的緣故,此時只需執行 setenforce 0 即可關閉selinux(臨時),再修改配置檔案 /etc/selinux/config,將SELINUX=enforcing改為SELINUX=disabled,這樣下次重啟selinux依然是關閉的。再執行curl localhost 會發現服務已經可以正常服務了。
非常好的參考文件:
個人微訊號:zhaoyanjun125 , 歡迎關注