一、安裝前的準備:
- 更新系統軟件:yum update
- 查看是否已安裝wget: rpm -qa wget 否則安裝:yum install –y wget
- 查看是否已安裝編譯器: rpm -qa gcc 否則安裝:yum install -y gcc gcc-c++
二、安裝Nginx
-
安裝nginx依賴包
nginx的Rewrite模塊和HTTP核心模塊會使用到PCRE正則表達式語法:yum -y install pcre pcre-devel
nginx的各種模塊中需要使用gzip壓縮:yum -y install zlib zlib-devel
安全套接字層密碼庫:yum -y install openssl openssl-devel - 下載nginx包並解壓(到/usr/local/src目錄中)
cd /usr/local/src
wget http://nginx.org/download/nginx-1.12.2.tar.gz
tar -zxvf nginx-1.12.2.tar.gz -
編譯安裝(到/usr/local/nginx目錄中)
cd nginx-1.12.2
./configure --prefix=/usr/local/nginx
--with-http_ssl_module #HTTPS模塊
--with-stream #stream模塊,用來實現四層協議的轉發、代理或者負載均衡等
--with-stream_ssl_module #支持https的stream模塊
--with-http_stub_status_module #狀態監控模塊
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-stream --with-stream_ssl_module --with-http_stub_status_module
make
make install - 創建並設置nginx運行賬號:
groupadd nginx
useradd -M -g nginx -s /sbin/nologin nginx
cd /usr/local/nginx/conf
vim nginx.conf,設置user參數如下:
user nginx nginx
日誌記錄配置
log_format main '$remote_addr - $remote_user [$time_iso8601] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" $upstream_response_time $request_time';
access_log logs/access.log main;
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ #看個人需要
啓動一次nginx,,,,然後再平滑重起,要不然可能出現以下問題
【問題】nginx –s reload出錯:nginx: [error] invalid PID number "" in "/usr/local/nginx/logs/nginx.pid"
【解決辦法】/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
- 設置nginx爲系統服務
vim /lib/systemd/system/nginx.service
文件內容:
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
-
設置nginx開機自啓動:systemctl enable nginx.service
- 開啓nginx服務:systemctl start nginx.service
查看nginx是否啓動成功:ps aux | grep nginx
在瀏覽器中訪問測試:http://localhost
出現以下界面則表示可以成功訪問:
- 防火牆開放80端口(nginx默認使用80端口,可在nginx.conf中配置,若無需進行遠程訪問則不需要開放端口)
永久開放80端口:firewall-cmd --zone=public --add-port=80/tcp --permanent
重啓防火牆:firewall-cmd --reload
查看防火牆開啓狀態:systemctl status firewalld
查看80端口是否開放成功:firewall-cmd --zone=public --query-port=80/tcp
可在windows宿主主機瀏覽器直接訪問ip測試是否可以成功訪問。