centos6.x yum默認沒有nginx的軟件包
安裝方式:
到nginx下載頁面http://nginx.org/en/linux_pac...,複製CENTOS 6的nginx軟件源安裝包
運行命令:wget http://nginx.org/packages/cen...
安裝rpm包 yum install nginx-release-centos-6-0.el6.ngx.noarch.rpm -y , 此步實際只是加入了nginx的軟件包源
執行 yum install nginx -y 就能夠安裝好nginx了。html
nginx默認安裝爲Linux的服務 ,因此可使用service nginx start, stop, restart, try-restart, reload, force-reload, status來操做nginx。linux
nginx的配置文件默認讀取/etc/nginx/nginx.conf文件。
固然也能夠修改使用的conf路徑,使用命令:
./nginx -c 你的conf文件位置
能夠相對路徑或者絕對路徑。
若是是不熟悉環境的Linux服務器,可使用命令來快速查找nginx.conf文件 :
sudo find / -name "nginx.conf"
也可使用命令
sudo nginx -t
來輸出正在使用的配置文件:
nginx: the configuration file /data/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /data/nginx/conf/nginx.conf test is successful
nginx的配置都是由 directives組成,directives由簡單指令或者區塊指令組成
簡單指令:listen 80;
區塊指令由{}包含,區塊指令又能夠包含多個簡單指令和區塊指令:
http {nginx
server { }
}web
咱們都知道若是在域名管理的控制面板設置域名對應ip只能設置到ip,不能詳細設置到端口。若是一臺服務器部署了多個web應用,使用的不一樣端口啓動的,那麼就能夠Nginx作映射。centos
好比我有一個域名 www.525.life。服務器
域名還能夠分出2級域名: admin.525.life。網站
我在域名控制面板把這兩個域名都指向個人服務器公網ip 123.123.123.123。.net
這時候發現www.525.life和admin.525.life域名訪問都只是對應到了 使用端口80的Web程序(默認的)。rest
若是咱們要訪問81端口的應用程序只能使用:code
www.525.life:81或者
admin.525.life:81。
可是這樣很不方便。咱們要把端口去掉也能訪問就須要使用Nginx作映射。
咱們指望www.525.life訪問8880端口,admin.525.life訪問8881端口。那麼能夠設置以下:
server
{
listen 80; server_name www.525.life; location / { #.... proxy_pass http://localhost:8880; } ##### other directive
}
server
{
listen 80; server_name admin.525.life; location / { #.... proxy_pass http://localhost:8881; } ##### other directive
}
這樣設置就能夠了。把8880和8881都映射到80端口的監聽。
使用重載命令使nginx生效:
sudo nginx -s reload (改用這個:service nginx reload)
使用命令重啓nginx生效:
/etc/init.d/nginx restart
這樣就能使用www.525.life訪問8880端口,admin.525.life訪問8881端口。
咱們在上面的例子中使用的是一個文件多個域名的寫法,也就是隻使用一個conf,在裏面不斷的增長server。這種方式很直觀,可是域名多了很差管理。
Nginx支持引入的用法,也就是咱們能夠在其餘地方先新建好conf文件,conf文件中記錄server的信息以下:
admin.conf中的內容是:
server
{
listen 80; server_name admin.525.life; location / { #.... proxy_pass http://localhost:8881; } ##### other directive
}
www.conf中的內容是:
server
{
listen 80; server_name www.525.life; location / { #.... proxy_pass http://localhost:8880; } ##### other directive
}
admin.conf和www.conf都放在/data/nginx/conf/vhost目錄下。
而後在nginx.conf中使用引入命令:
include /data/nginx/conf/vhost/*.conf;
便可。
須要注意的是這句命令應該放在
http{
}
的花括號內。
由於include的命令引入至關於被引入的全部代碼寫在nginx.conf中同樣。
咱們留意到生活中不少時候不帶www也能訪問到某個網站,這也能經過Nginx實現。跟上面的配置同樣,再增長一個server以下:
server
{
listen 80; server_name 525.life; location / { #.... proxy_pass http://localhost:8880; } ##### other directive
}
或者進行301跳轉
server
{
listen 80; server_name 525.life; rewrite ^/(.*) http://www.525.life/$1 permanent;
}
添加404網頁,均可又直接在裏面添加,如:
server
{
listen 80;
server_name www.web126.com; #綁定域名
error_page 404 /404.html;
}
最後還有一個方法須要注意,可能有須要禁止IP直接訪問80端口或者禁止非本站的域名綁定咱們的IP,這樣的話應該
以下處理,放到最前一個server上面便可:
server{
listen 80 default;
server_name _;
return 403;
}