Linux伺服器nginx安裝
阿新 • • 發佈:2018-12-15
一、安裝準備
解除安裝
檢視是否之前安裝過nginx
whereis nigin
如果有就會返回nginx路徑
解除安裝
yum remove nginx
安裝
centOS安裝nginx可以有以下兩種方式
- centos的yum 儲存庫,新增EPEL倉庫
- 從nginx官網下載
nginx-xxx.tar.gz
手動安裝
1.yum安裝
1.新增源
預設情況Centos7中無Nginx的源,最近發現Nginx官網提供了Centos的源地址。因此可以如下執行命令新增源
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
2、安裝Nginx
通過yum search nginx看看是否已經新增源成功。如果成功則執行下列命令安裝Nginx
#檢視是否新增源成功
sudo yum search nginx
#安裝
sudo yum install -y nginx
3、啟動Nginx
sudo systemctl start nginx
#或者
service nginx start
4.開機啟動nginx
sudo systemctl enable nginx
5.配置檔案
#預設配置檔案在/etc/nginx目錄下
/etc/nginx/conf/nginx.conf
6.測試
在瀏覽器位址列輸入伺服器ip訪問
2.編譯安裝
1.準備
nginx的一些模組依賴一些lib庫,所以在安裝之前,先裝依賴庫,c++
,gcc
,openssl-devl
,pcre-devel
和zlib-devel
#編譯環境
yum install gcc-c++
#rewrite模組需要pcre庫
yum install pcre pcre-devel
#gzip模組需要zlib庫
yum install zlib zlib-devel
#SSL功能需要openssl庫
yum install openssl openssl-devel
2.下載
先在/usr/local
目錄下下載
wget http://nginx.org/download/nginx-1.14.0.tar.gz
PS: 如果沒有wget
命令
# 如果沒有安裝wget
$ yum install wget
3.解壓
tar zxvf nginx-1.14.0.tar.gz
#我們一般安裝linux軟體都會在/usr/local目錄下,然後進行解壓編譯安裝
#如果不是在local目錄下操作,移動解壓後的原始碼包
mv nginx-1.11.3 /usr/local/nginx-1.14.0
4.進入安裝目錄
cd nginx-1.14.0
5.編譯安裝
./configure
#或者 ./configure --prefix=/usr/local/nginx 安裝到/usr/local/nginx的nginx目錄下
make
make install
#檢視版本
/usr/local/nginx/sbin/nginx -v
#檢查nginx.conf配置檔案正確性
/usr/local/webserver/nginx/sbin/nginx -t
6.啟動 Nginx
/usr/local//nginx/sbin/nginx
管理命令
# 啟動1:
/usr/local/nginx/sbin/nginx
# 啟動2:
cd /usr/local/nginx/sbin
./nginx
# 啟動3:
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
# 重新載入配置
/usr/local/nginx/sbin/nginx -s reload
# 重啟
/usr/local/nginx/sbin/nginx -s reopen
# 關閉程序
/usr/local/nginx/sbin/nginx -s stop
# 平滑關閉nginx
/usr/local/nginx/sbin/nginx -s quit
# 檢視nginx版本
/usr/local/nginx/sbin/nginx -V
# 檢查配置檔案nginx.conf的正確性
/usr/local/nginx/sbin/nginx -t
程序管理
#查詢程序
ps -ef|grep nginx
#停止程序
kill -QUIT 主程序
#快速停止
kill -TERM 主程序
#強制關閉
pkill -9 nginx
防火牆
nginx預設只開啟22埠,80等埠都是關閉的
解決1:關閉防火牆
#檢視防火牆狀態
firewall-cmd --state
#停止firewall
systemctl stop firewalld.service
#禁止firewall開機啟動
systemctl disable firewalld.service
解決2:開放特定埠
firewall-cmd --zone=public --add-port=80/tcp --permanent
#命令含義:
--zone #作用域
--add-port=80/tcp #新增埠,格式為:埠/通訊協議
--permanent #永久生效,沒有此引數重啟後失效
#重啟防火牆
systemctl stop firewalld.service
systemctl start firewalld.service
#或者
firewall-cmd --reload
解決三:配置防火牆檔案
在/etc/sysconfig/iptables
目錄下
vim /etc/sysconfig/iptables
#新增如下程式碼
-A INPUT -p tcp -m state -- state NEW -m tcp --dport 80 -j ACCEPT
#儲存退出,重啟防火牆
service iptables restart