linux系統部署Nginx

一、linux系統部署Nginx

1、準備工作
Nginx的安裝依賴於以下三個包,意思就是在安裝Nginx之前首先必須安裝一下的三個包,注意安裝順序如下:
1 SSL功能需要openssl庫,直接通過yum安裝:
yum install openssl
2 gzip模塊需要zlib庫,直接通過yum安裝:
yum install zlib
3 rewrite模塊需要pcre庫,直接通過yum安裝:
yum install pcre
2、安裝Nginx依賴項和Nginx
1
使用yum安裝nginx需要包括Nginx的庫,安裝Nginx的庫
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
2
使用下面命令安裝nginx
yum install nginx
3
啟動Nginx
service nginx start
nginx -s reload :修改配置後重新載入生效
3、直接瀏覽器訪問localhost就會出現Nginx的歡迎界面表示你安裝成功了,否則就是安裝失敗了
4、配置Nginx
CentOS安裝Nginx後,安裝在了
/etc/nginx/目錄下,你可以打開/etc/nginx/conf.d/default/conf查看裡面的配置,包括監聽埠,域名和nginx訪問的根目錄

二、linux下配置nginx使用service nginx start 服務

1:接下來我們簡單的為它提供一個服務腳本吧!
# vim /etc/init.d/nginx

2:新建文件/etc/rc.d/init.d/nginx,內容如下:

#!/bin/bash
# chkconfig:235 85 15
# description: Nginx is an HTTP server

. /etc/rc.d/init.d/functions

start() {

echo "Start..."

/usr/local/nginx/sbin/nginx &> /dev/null

if [ $? -eq 0 ];then

echo "Start successful!"

else

echo "Start failed!"

fi

}

stop() {

if killproc nginx -QUIT ;then

echo "Stopping..."

fi

}

restart() {

stop

sleep 1

start

}

reload() {

killproc nginx -HUP

echo "Reloading..."

}

configtest() {

/usr/local/nginx/sbin/nginx -t

}

case $1 in

start)

start ;;

stop)

stop ;;

restart)

restart ;;

reload)

reload ;;

configtest)

configtest ;;

*)

echo "Usage: nginx {start|stop|restart|reload|configtest}"

;;

esac

之後給這個文件可執行許可權:

chmod +x /etc/init.d/nginx

現在可以使用 start,stop 這些參數控制Nginx服務了

Nginx編譯安裝時常見錯誤分析

Nginx編譯安裝時常見錯誤分析 - a2796749的專欄 - CSDN博客?

blog.csdn.net

linux如何查看nginx是否啟動

第一種方法:查看進程列表並過濾

ps -ef | grep nginx

第二種方法:使用netstat命令

netstat -anp | grep :80

nginx卸載

yum remove nginx

linux系統上nginx安裝及簡單的反向代理配置

1. 更改配置文件

    其配置文件位置: /application/nginx/conf/nginx.conf

2.重啟nginx

先 ps -ef | grep nginx ,會出現5個關於nginx的進程,如果5個進程的id分別為 100、101、102、103、104
殺掉所有nginx進程 kill -9 101 102 103 104
進入目錄 cd /usr/sbin
重啟 nginx -c /etc/nginx/nginx.conf

至於 nginx -s reload 不建議使用,本人親試,有時候無效

啟動nginx的時候也可以 cd /usr/sbin,然後直接 nginx , (-c 配置文件,表示根據指定文件啟動,如果該配
置文件和安裝的nginx命令不是一個版本,會報錯) 啟動後,nginx -t 可以查看是根據那個配置文件啟動的,
所以建議linux系統里只保留一個nginx.conf文件, 以免出現衝突,一般nginx.conf在兩個位置,
分別是/usr/local/nginx/conf/nginx.conf和/etc/nginx/nginx.conf

nginx.conf 配置如下:

http{
.........
server{
listen 80;
server_name 192.16.10.10;
location / {
proxy_pass http://localhost:8081
}
}

server{
listen 80;
server_name www.acdf.com;
location / {
proxy_pass http://localhost:8082
}
}
}

疑問:

1.需要兩個tomcat實例共用 80 埠,是不是 監聽 listen 都為 80 ?
2.nginx 是怎樣根據請求地址 來正則匹配 到不同的 虛擬主機的?我的理解是申請兩個域名都綁定到我
映射的同一 ip,然後在不同的 server{} 中的 server_name 填入兩個域名,通過域名匹配再轉到本地的
http://localhost:8081
3.就是 server_name ,這個到底是什麼意思,該怎麼填寫?網上有說填 localhost 的,也有 像我第一種
配置直接寫ip:port 192.16.10.10:8081 的。如果是這種ip:port 方式的話,我的前端請求地址該如何寫
,是直接寫我映射的地址 http://192.16.10.10 還是 http://192.16.10.10:8081 ? 但是這樣寫的話
,我監聽的 80 埠還有作用嗎? 我的 server_name 又該怎樣寫?
server下的節點:
server_name :基於域名的虛擬主機,轉發到哪個地址
listen:監聽80埠
proxy_pass:代理到哪個地址

nginx 啟動錯誤"nginx: [emerg] host not found in upstream "解決方案

利用nginx進行反向代理的時候,我們會配置proxy_pass。在啟動nginx的時候,會報
nginx: [emerg] host not found in upstream "yq.object.com" in
/usr/local/nginx/conf/vhost/yq.nginx.com.conf:19 這個錯誤。
其實nginx配置語法上沒有錯誤的,只是系統無法解析這個域名,所以報錯.
解決辦法就是添加dns到/etc/resolv.conf 或者是/etc/hosts,讓其能夠解析到IP。具體步驟如下:
vim /etc/hosts
修改hosts文件,在hosts文件裡面加上一句
127.0.0.1 localhost.localdomain yq.object.com

推薦閱讀:

TAG:Linux | Nginx | Web伺服器 |