激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

云服務器|WEB服務器|FTP服務器|郵件服務器|虛擬主機|服務器安全|DNS服務器|服務器知識|Nginx|IIS|Tomcat|

服務器之家 - 服務器技術 - Nginx - nginx安裝以及配置的詳細過程記錄

nginx安裝以及配置的詳細過程記錄

2021-11-08 16:10lywJee Nginx

Nginx (engine x) 是一個高性能的HTTP和反向代理服務器,也是一個IMAP/POP3/SMTP服務器,下面這篇文章主要給大家介紹了關于nginx安裝以及配置的詳細過程,文章將實現的過程介紹的非常詳細,需要的朋友可以參考下

1 nginx 介紹

1 什么是nginx

nginx是一款高性能的http服務器/反向代理服務器及電子郵件(imap/pop3)代理服務器。

由俄羅斯的程序設計師igor sysoev所開發,官方測試nginx能夠支支撐5萬并發鏈接,

并且cpu、內存等資源消耗卻非常低,運行非常穩定。

2 應用場景

1、http服務器。nginx是一個http服務可以獨立提供http服務。可以做網頁靜態服務器。

2、虛擬主機。可以實現在一臺服務器虛擬出多個網站。例如個人網站使用的虛擬主機。

3、反向代理,負載均衡。當網站的訪問量達到一定程度后,單臺服務器不能滿足用戶的請求時,

需要用多臺服務器集群可以使用nginx做反向代理。并且多臺服務器可以平均分擔負載,

不會因為某臺服務器負載高宕機而某臺服務器閑置的情況。

2 nginx安裝

1 下載

官方網址:http://nginx.org/en/download.html

官網提供三種版本:

nginx官網提供了三個類型的版本

mainline version:mainline 是 nginx 目前主力在做的版本,可以說是開發版

stable version:最新穩定版,生產環境上建議使用的版本

legacy versions:遺留的老版本的穩定版

nginx安裝以及配置的詳細過程記錄

我們這里下載的是stable version下面的

nginx安裝以及配置的詳細過程記錄

使用的版本是1.14.0.tar.gz.

2 安裝要求的環境

下面的環境需要視自己的系統情況而定,沒有的環境安裝以下就好。

1.需要安裝gcc環境

?
1
# yum install gcc-c++

2.第三方的開發包

1 pere

pcre(perl compatible regular expressions)是一個perl庫,包括perl兼容的正則表達式庫。

nginx的http模塊使用pcre來解析正則表達式,所以需要在linux上安裝pcre庫。

注:pcre-devel是使用pcre開發的一個二次開發庫。nginx也需要此庫。

?
1
# yum install -y pcre pcre-devel

2 zlib

zlib庫提供了很多種壓縮和解壓縮的方式,nginx使用zlib對http包的內容進行gzip,所以需要在linux上安裝zlib庫。

?
1
# yum install -y zlib zlib-devel

3 openssl

openssl是一個強大的安全套接字層密碼庫,囊括主要的密碼算法、常用的密鑰和證書封裝管理功能及ssl協議,

并提供豐富的應用程序供測試或其它目的使用。

nginx不僅支持http協議,還支持https(即在ssl協議上傳輸http),所以需要在linux安裝openssl庫。

?
1
# yum -y install pcre  pcre-devel zlib  zlib-devel openssl openssl-devel

3 nginx安裝過程

1 把nginx源碼包上傳到linux系統上

nginx安裝以及配置的詳細過程記錄

2 解壓到/usr/local下面

?
1
# tar -xvf nginx-1.14.0.tar.gz -c /usr/local

3 使用cofigure命令創建一個makefile文件

執行下面的命令的時候,一定要進入到nginx-1.14.0目錄里面去。

nginx安裝以及配置的詳細過程記錄

?
1
2
3
4
5
6
7
8
9
10
11
12
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \--with-http_stub_status_module \--with-http_ssl_module \--with-file-aio \--with-http_realip_module

如果沒有makefile文件,編譯的時候會報錯

nginx安裝以及配置的詳細過程記錄

\ 表示命令還沒有輸入完,換行的意思。

--prefix=/usr/local/nginx 表示軟件安裝到/usr/local/nginx下面。

這個make install 的時候就不用在指定安裝路徑。

執行完成后查看目錄里面已經多了一個makefile文件

nginx安裝以及配置的詳細過程記錄

注意:啟動nginx之前,上邊將臨時文件目錄指定為/var/temp/nginx,

需要在/var下創建temp及nginx目

4 創建目錄/var/temp/nginx/

?
1
# mkdir /var/temp/nginx -p

-p 表示級聯創建的意思

5 進入nginx-1.14.0里面執行make命令進行編譯

nginx安裝以及配置的詳細過程記錄

6 進入nginx-1.14.0里面執行make install 命令進行安裝

這里不需要再次執行安裝路徑,創建makefile文件的時候已經指定了。

nginx安裝以及配置的詳細過程記錄

7 進入安裝位置/usr/local/nginx查看目錄結構

nginx安裝以及配置的詳細過程記錄

其中html是里面首頁html文件。conf里面是配置文件。sbin里面只執行文件。

3 啟動nginx

進入sbin目錄,執行命令./nginx

?
1
[root@admin sbin]# ./nginx

4 查看nginx是否啟動

?
1
[root@admin sbin]# ps -aux | grep nginx

nginx安裝以及配置的詳細過程記錄

ps命令用于報告當前系統的進程狀態。

-a:顯示所有終端機下執行的程序,除了階段作業領導者之外。

a:顯示現行終端機下的所有程序,包括其他用戶的程序。

u:以用戶為主的格式來顯示程序狀況。

x:顯示所有程序,不以終端機來區分。

5 關閉nginx

?
1
[root@admin sbin]#  ./nginx -s stop

或者

?
1
[root@admin sbin]# ./nginx -s quit

6 重啟nginx

先關閉,然后啟動

7 刷新配置文件

?
1
[root@admin sbin]# ./nginx -s reload

8 關閉防火墻,開啟遠程訪問

首先需要關閉防火墻:默認端口是80

方法一:永久開放80端口

?
1
2
/sbin/iptables -i input -p tcp --dport 80 -j accept
/etc/rc.d/init.d/iptables save

方法二:臨時關閉系統防火墻

?
1
# service iptables stop

方法三:永久關閉修改配置開機不啟動防火墻

?
1
# chkconfig iptables off

特殊:針對阿里云

需要添加安全組規則

nginx安裝以及配置的詳細過程記錄

9 訪問nginx

nginx安裝以及配置的詳細過程記錄

10 配置虛擬主機

就是在一臺服務器啟動多個網站。

如何區分不同的網站:主要有以下兩種方式

方式一:端口不同

方式二:域名不同

11 通過端口區分不同的主機

nginx配置文件的位置:/usr/local/nginx/conf/nginx.conf

原始配置文件的內容如下:

nginx安裝以及配置的詳細過程記錄

我們可以通過配置多個server,從而配置多個虛擬機

nginx安裝以及配置的詳細過程記錄

下面測試以下:復制原來的html目錄,改名為html-81

nginx安裝以及配置的詳細過程記錄

修改以下里面的index.html文件,方便區分

?
1
[root@admin nginx]# vim html-81/index.html

nginx安裝以及配置的詳細過程記錄

修改完成之后刷新以下配置文件

?
1
[root@admin sbin]# ./nginx -s reload

然后分別訪問192.168.204.131:80 和192.168.204.131:81

nginx安裝以及配置的詳細過程記錄

nginx安裝以及配置的詳細過程記錄

12 多個域名區分虛擬主機

1 什么是域名

域名就是網站:www.baidu.com就是域名

dns域名解析服務器,把域名解析為ip地址。保存的就是域名和ip地址的映射關系。

一級域名:baidu.com

二級域名:www.baidu.com

三級域名:image.baidu.com

一個域名對應與一個ip地址,一個ip地址可以被多個域名綁定。

只需要買一個一級域名,后面的二級,三級域名你自己可以隨便定義。

本地測試我們可以通過修改hosts配置文件來完成:

hosts文件的位置:c:\windows\system32\drivers\etc

可以自己手動配置域名和ip的映射關系,如果hosts文件中配置了域名和ip的對應關系,不需要走dns域名解析服務器。

因為拿到一個域名,首先是到hosts文件里面查找,沒有才有去dns域名解析器查找。

2 nginx配置

nginx安裝以及配置的詳細過程記錄

3 測試

1 修改本地hosts配置文件

nginx安裝以及配置的詳細過程記錄

2 復制html目錄,分別改名為html-taobao和html-baidu

nginx安裝以及配置的詳細過程記錄

3 分別修改html-baidu和html-taobao里面的index.html文件,方便區分

nginx安裝以及配置的詳細過程記錄

nginx安裝以及配置的詳細過程記錄

4 刷新配置文件

?
1
[root@admin sbin]# ./nginx -s reload

5 然后使用瀏覽器分別訪問:www.taobao.com 和 www.baidu.com

13 正向代理

nginx安裝以及配置的詳細過程記錄

14 反向代理

nginx安裝以及配置的詳細過程記錄

反向代理服務器決定那臺服務器提供服務

15 nginx實現反向代理

兩個域名指向同一臺nginx服務器,用戶訪問不同的域名顯示不同的網頁內容。

兩個域名是www.baidu.com和www.taobao.com

nginx代理服務器使用虛擬機192.168.204.131

nginx安裝以及配置的詳細過程記錄

第一步:安裝兩個tomcat,分別運行在8080和8081端口。

第二步:啟動兩個tomcat。

第三步:反向代理服務器的配置

nginx安裝以及配置的詳細過程記錄

第四步:nginx重新加載配置文件

第五步:配置域名

在hosts文件中添加域名和ip的映射關系

192.168.204.131 www.baidu.com

192.168.204.131 www.taobao.com

16 負載均衡

如果一個服務由多個服務器提供,需要把負載分配到不同的服務器處理,需要負載均衡。

nginx安裝以及配置的詳細過程記錄

可以根據服務器的實際情況調整服務器權重。權重越高分配的請求越多,權重越低,請求越少。默認是都是1

nginx安裝以及配置的詳細過程記錄

17 設置nginx開機自啟動(centos6.5)

每次啟動nginx服務都需要到安裝目錄下的/sbin下面,感覺挺麻煩的。

下面介紹一下如何在linux(centos)系統上,設置nginx開機自啟動。

1 用腳本管理nginx服務

第一步:在/etc/init.d/目錄下創建nginx文件,命令如下:

?
1
# touch /etc/init.d/nginx

第二步:在創建的nginx文件中加入下面的內容

首先執行命令:

?
1
# vim /etc/init.d/nginx

然后加下面的內容復制到nginx配置文件中

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#!/bin/sh
#
# nginx - this script starts and stops the nginx daemon
#
# chkconfig:   - 85 15
# description:  nginx is an http(s) server, http(s) reverse \
#               proxy and imap/pop3 proxy server
# processname: nginx
# config:      /etc/nginx/nginx.conf
# config:      /etc/sysconfig/nginx
# pidfile:     /var/run/nginx.pid
# source function library.
. /etc/rc.d/init.d/functions
# source networking configuration.
. /etc/sysconfig/network
# check that networking is up.
[ "$networking" = "no" ] && exit 0
nginx="/usr/sbin/nginx"
prog=$(basename $nginx)
nginx_conf_file="/etc/nginx/nginx.conf"
[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
lockfile=/var/lock/subsys/nginx
make_dirs() {
   # make required directories
   user=`$nginx -v 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
   if [ -z "`grep $user /etc/passwd`" ]; then
       useradd -m -s /bin/nologin $user
   fi
   options=`$nginx -v 2>&1 | grep 'configure arguments:'`
   for opt in $options; do
       if [ `echo $opt | grep '.*-temp-path'` ]; then
           value=`echo $opt | cut -d "=" -f 2`
           if [ ! -d "$value" ]; then
               # echo "creating" $value
               mkdir -p $value && chown -r $user $value
           fi
       fi
   done
}
start() {
    [ -x $nginx ] || exit 5
    [ -f $nginx_conf_file ] || exit 6
    make_dirs
    echo -n $"starting $prog: "
    daemon $nginx -c $nginx_conf_file
    retval=$?
    echo
    [ $retval -eq 0 ] && touch $lockfile
    return $retval
}
stop() {
    echo -n $"stopping $prog: "
    killproc $prog -quit
    retval=$?
    echo
    [ $retval -eq 0 ] && rm -f $lockfile
    return $retval
}
restart() {
    configtest || return $?
    stop
    sleep 1
    start
}
reload() {
    configtest || return $?
    echo -n $"reloading $prog: "
    killproc $nginx -hup
    retval=$?
    echo
}
force_reload() {
    restart
}
configtest() {
  $nginx -t -c $nginx_conf_file
}
rh_status() {
    status $prog
}
rh_status_q() {
    rh_status >/dev/null 2>&1
}
case "$1" in
    start)
        rh_status_q && exit 0
        $1
        ;;
    stop)
        rh_status_q || exit 0
        $1
        ;;
    restart|configtest)
        $1
        ;;
    reload)
        rh_status_q || exit 7
        $1
        ;;
    force-reload)
        force_reload
        ;;
    status)
        rh_status
        ;;
    condrestart|try-restart)
        rh_status_q || exit 0
            ;;
    *)
        echo $"usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
        exit 2
esac

上面的腳本文件并不是自己寫的,是nginx官方提供的。

地址:http://wiki.nginx.org/redhatnginxinitscript

注意:如果是自定義安裝的nginx,修改根據實際情況修改安裝路和配置文件。

 

復制代碼 代碼如下:
nginx="/usr/sbin/nginx" 修改成你的nginx執行程序的路徑。比如我的是nginx="/usr/local/nginx/sbin/nginx"
復制代碼 代碼如下:
nginx_conf_file="/etc/nginx/nginx.conf" 修改成你的配置文件的路徑
例如:nginx_conf_file="/usr/local/nginx/nginx.conf

 

修改完成后保存腳本文件,wq 保存并退出

第三步:設置nginx文件的權限

?
1
# chmod a+x /etc/init.d/nginx

解釋:a+x==>all user can execute 所有用戶可執行)的意思

第四步:管理腳本

到這里,我們就可以使用nginx腳本對服務進行管理了

?
1
2
3
4
5
# /etc/init.d/nginx start      啟動服務
# /etc/init.d/nginx stop       停止服務 
# /etc/init.d/nginx restart    重啟服務
# /etc/init.d/nginx status     查看服務的狀態
# /etc/init.d/nginx reload     刷新配置文件

2 使用chkconfig管理

上面的方法完成了用腳本管理nginx服務的功能,但是還是不太方便,比如要設置nginx開機啟動等。

這個時候我們可以使用chkconfig來進行管理。

第一步:將nginx服務加入chkconfig管理列表

?
1
# chkconfig --add /etc/init.d/nginx

第二步:使用service管理服務

?
1
2
3
4
5
# service nginx start    啟動服務
# service nginx stop     停止服務
# service nginx restart  重啟服務
# service nginx status   查詢服務的狀態
# service nginx relaod   刷新配置文

第三步:設置終端模式開機啟動

?
1
# chkconfig nginx on

17 設置nginx開機自啟動(centos7.4)

第一步:進入到/lib/systemd/system/目錄

?
1
[root@iz2z init.d]# cd /lib/systemd/system/

第二步:創建nginx.service文件,并編輯

?
1
# vim nginx.service

內如如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
[unit]
description=nginx service
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 quit
privatetmp=true
   
[install]
wantedby=multi-user.target

[unit]:服務的說明

description:描述服務

after:描述服務類別

[service]服務運行參數的設置

type=forking是后臺運行的形式

execstart為服務的具體運行命令

execreload為重啟命令

execstop為停止命令

privatetmp=true表示給服務分配獨立的臨時空間

注意:[service]的啟動、重啟、停止命令全部要求使用絕對路徑

[install]運行級別下服務安裝的相關設置,可設置為多用戶,即系統運行級別為3

保存退出。

第三步:加入開機自啟動

?
1
# systemctl enable nginx

如果不想開機自啟動了,可以使用下面的命令取消開機自啟動

?
1
# systemctl disable nginx

第四步:服務的啟動/停止/刷新配置文件/查看狀態

?
1
2
3
4
5
6
7
# systemctl start nginx.service          啟動nginx服務
# systemctl stop nginx.service           停止服務
# systemctl restart nginx.service        重新啟動服務
# systemctl list-units --type=service     查看所有已啟動的服務
# systemctl status nginx.service          查看服務當前狀態
# systemctl enable nginx.service          設置開機自啟動
# systemctl disable nginx.service         停止開機自啟動

一個常見的錯誤warning: nginx.service changed on disk. run 'systemctl daemon-reload' to reload units.

直接按照提示執行命令systemctl daemon-reload 即可。

?
1
# systemctl daemon-reload

18 重啟系統,再次啟動nginx報錯

1 故障現場

之前在虛擬機centos6.5上面設置自啟動之后,重新啟動系統可以正常啟動,也不會出錯。

centos6.5的自啟動設置見16部分知識點。

但是在centos7.4(阿里云上面),參照第17部分配置好了自啟動。重啟系統發現nginx并沒有自啟動

使用命名systemctl status nginx查看了一下狀態,內容如下:

nginx安裝以及配置的詳細過程記錄

然后我直接進入/usr/local/nginx/sbin目錄下面,執行./nginx,出現了下面的錯誤提示:

nginx安裝以及配置的詳細過程記錄

從這兩個提示信息,可以大概看出告訴我們的就是找不到/var/run/nginx/目錄下面的nginx.pid文件。

2 故障解決

第一步:進入cd /usr/local/nginx/conf/ 目錄,編輯配置文件nginx.conf ;

在配置文件中找到:#pid logs/nginx.pid;

nginx安裝以及配置的詳細過程記錄

將其修改為:去掉注釋,修改成自己的路徑

nginx安裝以及配置的詳細過程記錄

修改完成保存退出

第二步:創建目錄/var/run/nginx/

?
1
# mkdir /var/run/nginx -p

第三步:啟動nginx服務

?
1
# /usr/local/nginx/sbin/nginx

可以查看一下是否成功啟動了

nginx安裝以及配置的詳細過程記錄

3 故障重現

[emerg] open() "/var/run/nginx/nginx.pid" failed (2: no such file or directory)處理

測試發現,只要執行reboot命令重啟,var/run/nginx,nginx這個文件夾都會被刪除,

搞得每一次都要去建立nginx這個文件夾,簡直麻煩到了極點,實在受不了。下面

繼續來解決這個問題。

第一步:進入cd /usr/local/nginx/conf/ 目錄,編輯配置文件nginx.conf ;

nginx安裝以及配置的詳細過程記錄

第二步:在/usr/local/nginx目錄下建立logs文件夾

?
1
# mkdir /usr/local/nginx/logs

nginx安裝以及配置的詳細過程記錄

第三步:把/var/run/nginx/目錄下的nginx.pid這個文件拷貝到第二步創建的logs文件夾里面。

?
1
# cp nginx.pid /usr/local/nginx/logs/

nginx安裝以及配置的詳細過程記錄

第四步:把logs這個文件夾在conf下也拷貝一份

?
1
# cp -r logs conf

nginx安裝以及配置的詳細過程記錄

第五步:修改權限/usr/local/nginx/logs/目錄下面的nginx.pid文件的權限。

?
1
[root@iz2logs]# chmod 755 nginx.pid

nginx安裝以及配置的詳細過程記錄

第六步:重啟reboot

?
1
# reboot

第六步:啟動nginx

?
1
# /usr/local/nginx/sbin/nginx

nginx安裝以及配置的詳細過程記錄

這次是終于成功解決了,一邊安裝一邊解決問題,到這里nginx總是算是可以自啟動了,并且也不會重啟后找不到nginx.pid文件。真的太不容易了。

解決的原理:就是讓它去另外一個地方找nginx.pid文件,

因為/var/run/nginx/nginx.pid這個文件總是重啟就刪除了。

簡單解決方案

上面的過程有點繁瑣了,實際可以直接按照下面的這個簡單方法解決

修改nginx.conf文件如下:

nginx安裝以及配置的詳細過程記錄

在/usr/local/nginx/目錄下創建一個logs目錄。

然后啟動就可以了,并且重啟也不會被刪除。

這樣下面的日志文件的配置也可以簡化為去掉# error_log logs/error.log info; 前面的“#”就可以了

error_log logs/error.log info;

19 配置日志文件的位置

第一步:進入cd /usr/local/nginx/conf/ 目錄,編輯配置文件nginx.conf ;

nginx安裝以及配置的詳細過程記錄

第二步:保證肯定有這個路徑,可以直接創建一下這個配置的目錄

?
1
# mkdir -p /var/log/nginx/

第三步:刷新配置文件

?
1
# /usr/local/nginx/sbin/nginx -s reload

總結

到此這篇關于nginx安裝以及配置的文章就介紹到這了,更多相關nginx安裝及配置內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://www.cnblogs.com/lywJ/p/10710361.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 黄色毛片一级 | 精品一区二区三区免费爱 | 黄色网战在线看 | 国产精品观看在线亚洲人成网 | 中文字幕在线观看网址 | av影院在线播放 | 中文字幕免费一区 | 黄网站色成年大片免费高 | 老女人碰碰在线碰碰视频 | 黄色av片在线观看 | 国产人成精品一区二区三 | 狼人狠狠干| 久草视频在线看 | 在线播放亚洲 | 素人视频免费观看 | 亚洲精品成人在线视频 | 在线免费观看欧美 | 精品在线观看一区二区 | 逼片 | 久久精品视频一区二区三区 | 色操网| 91麻豆蜜桃一区二区三区 | 欧洲精品视频在线观看 | 久久久久久久久久亚洲 | 欧美顶级毛片在线播放小说 | 亚洲精品v天堂中文字幕 | 久久精品国产亚洲aa级女大片 | 草草在线观看 | 91看片在线播放 | 超碰97人人艹 | 成人偷拍片视频在线观看 | 免费视频www在线观看 | 亚洲一区二区观看播放 | 牛牛a级毛片在线播放 | 911视频免费版 | 91精品国产综合久久婷婷香蕉 | 嗯哈~不行好大h双性 | 空姐一级毛片 | 九色激情网 | 国产成人综合在线观看 | 草草久久久 |