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博客
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
推薦閱讀: