Linux學習之路(三) — 搭建nginx伺服器
簡介
官網簡介:nginx
[engine x
]是一個 HTTP
和反向代理伺服器,一個郵件代理伺服器和一個通用的 TCP / UDP
代理伺服器,最初由 Igor Sysoev 編寫
下載安裝 nginx
- 安裝
nginx
之前需要安裝一些依賴包。
# 編譯需要依賴 gcc 環境
yum install gcc-c++
# Perl庫,包括 perl 相容的正規表示式庫。
# nginx 的 http 模組使用 pcre 來解析正規表示式,所以需要在 linux 上安裝 pcre 庫
# pcre-devel 是使用 pcre 開發的一個二次開發庫。nginx也需要此庫
yum install -y pcre pcre-devel
# zlib 庫提供了很多種壓縮和解壓縮的方式
yum install -y zlib zlib-devel
# 使 nginx 支援 https 協議
yum install -y openssl openssl-devel
- 下載
nginx
。
- 到官網下載:http://nginx.org/en/download.html , 下載
ngixn-1.14.2
穩定版本,下載好後將安裝包上傳到伺服器上。
- 使用
wget
命令下載
wget -c https://nginx.org/download/nginx-1.14.2.tar.gz
- 安裝
# 解壓安裝包。
tar -zxvf nginx-1.10.1.tar.gz
# 進入解壓後的檔案目錄。
cd nginx-1.10.1
# 使用預設配置(也可以自定義配置,不是太懂的最好還是老老實實的使用預設的)
./configure
# 編譯安裝
make
make install
# 檢視 nginx 安裝路徑
whereis nginx
- 配置
nginx.conf
使用包含檔案的形式進行配置(推薦)
遮蔽掉nginx
裡面的server {}
預設配置,在http {}
中間加一句include /usr/local/nginx/conf/vhost/*.conf;
#user nobody;
worker_processes 1;
error_log logs/error.log;
error_log logs/error.log notice;
error_log logs/error.log info;
pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
access_log logs/access.log;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
include /usr/local/nginx/conf/vhost/*.conf;
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}
按照上面的路徑,新建
vhost
資料夾,在vhost
資料夾新建test.apitest.com.conf
檔案。
在test.apitest.com.conf
檔案寫入以下的內容,儲存並退出。
server {
listen 80;
server_name test.apitest.com;
charset utf-8;
root /var/www/html/project;
location / {
index index.php index.html index.htm ;
# include /usr/local/nginx/conf/rewrite/apitest.conf;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ \.php {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include fastcgi_params;
}
}
-
nginx
的一些常規命令(比較麻煩,下面有變簡單的方法)
cd /usr/local/nginx/sbin/
./nginx -t # 檢查 nginx 配置檔案
./nginx -s start # 啟動
./nginx -s stop # 停止,也可以使用 ./nginx -s quit
./nginx -s reload # 重啟。
新增 nginx 到系統服務
- 建立
nginx
啟動命令指令碼
vi /etc/init.d/nginx
- 插入以下內容,注意修改PATH和NAME欄位,匹配自己的安裝路徑
#! /bin/bash
# chkconfig: - 85 15
PATH=/usr/local/nginx
DESC="nginx daemon"
NAME=nginx
DAEMON=$PATH/sbin/$NAME
CONFIGFILE=$PATH/conf/$NAME.conf
PIDFILE=$PATH/logs/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
set -e
[ -x "$DAEMON" ] || exit 0
do_start() {
$DAEMON -c $CONFIGFILE || echo -n "nginx already running"
}
do_stop() {
$DAEMON -s stop || echo -n "nginx not running"
}
do_reload() {
$DAEMON -s reload || echo -n "nginx can't reload"
}
case "$1" in
start)
echo -n "Starting $DESC: $NAME"
do_start
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
do_stop
echo "."
;;
reload|graceful)
echo -n "Reloading $DESC configuration..."
do_reload
echo "."
;;
restart)
echo -n "Restarting $DESC: $NAME"
do_stop
do_start
echo "."
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|reload|restart}" >&2
exit 3
;;
esac
exit 0
- 設定執行許可權
chmod a+x /etc/init.d/nginx
- 註冊成服務
chkconfig --add nginx
- 設定開機啟動
chkconfig nginx on
- 重啟虛擬機器,檢視
nginx
是否自動執行。
shutdown -h 0 -r
netstat -apn|grep nginx
- 加入系統服務後的
nginx
啟動/關閉/重啟 命令
systemctl start nginx # 啟動 nginx
systemctl stop nginx # 停止 nginx
systemctl restart nginx # 重啟 nginx
systemctl reload nginx # 重新讀取nginx的配置(這個最常用, 不用停止 nginx 服務就能使修改的配置生效)
- 但這個時候你會發現 nginx -t 還是不能使用,原因是因為沒有將 nginx 加入環境變數。
# 開啟環境變數檔案。
vi /etc/profile
# 在 export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL 之前新增以下內容。
NGINX_PATH='/usr/local/nginx'
export PATH=$PATH:$NGINX_PATH/sbin
儲存退出,執行 source /etc/profile
使其配置生效。
這樣就可以在任何地方使用 nginx
了。
參考
相關文章
- Linux學習之路(三)Shell指令碼初探Linux指令碼
- 凡人學習Linux之路Linux
- linux學習之路(1)Linux
- Linux 學習筆記(二):搭建個人Git伺服器Linux筆記Git伺服器
- linux伺服器環境部署(三、docker部署nginx)Linux伺服器DockerNginx
- Linux學習環境搭建Linux
- Linux爬坑之路(學習總結)Linux
- Nginx學習筆記(反向代理&搭建叢集)Nginx筆記
- 你走對Linux學習之路了嗎?Linux
- Nginx搭建檔案伺服器Nginx伺服器
- nginx伺服器搭建以及配置Nginx伺服器
- Windows下搭建Nginx伺服器WindowsNginx伺服器
- 大學生視角下的Linux學習之路Linux
- 學習Spring Cloud與微服務之路三SpringCloud微服務
- Nginx配置虛擬主機有哪些步驟?linux伺服器入門學習NginxLinux伺服器
- Nginx 學習系列(三) ------------- alias、root指令區別Nginx
- docker使用nginx搭建靜伺服器DockerNginx伺服器
- web前端學習之路的第三天Web前端
- RxJS的學習之路三(建立一個Observable)JS
- AI 學習之路——輕鬆初探 Python 篇(三)AIPython
- linux伺服器下部署nginxLinux伺服器Nginx
- linux 伺服器安裝 nginxLinux伺服器Nginx
- linux伺服器安裝nginxLinux伺服器Nginx
- 自學linux——21. NFS伺服器的搭建LinuxNFS伺服器
- 自學linux——20.Samba伺服器的搭建LinuxSamba伺服器
- 一個企業網管的Linux學習之路Linux
- Nginx作為web伺服器應用場景有哪些?linux系統學習體系NginxWeb伺服器Linux
- 使用Nginx搭建流媒體伺服器Nginx伺服器
- 使用Nginx搭建公網代理伺服器Nginx伺服器
- Nginx學習之從零搭建靜態資源網站Nginx網站
- Nginx有哪些重要特性?學習linux系統知識NginxLinux
- Pytest學習之路
- eggjs學習之路JS
- java學習之路Java
- 在Mac上搭建自己的伺服器——NginxMac伺服器Nginx
- 機器學習&深度學習之路機器學習深度學習
- Nginx學習系列三Nginx的啟動、停止、修改配置檔案後重啟Nginx
- 【Nginx學習筆記】-初識NginxNginx筆記