nginx是C語言開發,在linux上運行時須要安裝c環境。html
指令:linux
1.yum install gcc-c++nginx
編譯依賴gcc環境,若是沒有gcc環境,須要安裝gccc++
2.yum install -y pcre pcre-devel正則表達式
PCRE(Perl Compatible Regular Expressions)是一個Perl庫,包括 perl 兼容的正則表達式庫。nginx的http模塊使用pcre來解析正則表達式,因此須要在linux上安裝pcre庫,算法
而pcre-devel是使用pcre開發的一個二次開發庫。nginx也須要此庫。瀏覽器
3.yum install -y zlib zlib-develtomcat
zlib庫提供了不少種壓縮和解壓縮的方式,nginx使用zlib對http包的內容進行gzip,因此須要在linux上安裝zlib庫。安全
4.yum install -y openssl openssl-devel負載均衡
openssl 是一個強大的安全套接字層密碼庫,囊括主要的密碼算法、經常使用的密鑰和證書封裝管理功能及SSL協議,並提供豐富的應用程序供測試或其它目的使用。
nginx不只支持http協議,還支持https(即在ssl協議上傳輸http),因此須要在linux安裝openssl庫。
5.解壓Nginx安裝包
tar -zxvf **
6.生成Makefile文件(編譯須要)
./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
7.編譯
make
8.安裝
make install
9.啓動Nginx(進入cd /usr/local/nginx/sbin/,而後建立一個指定文件mkdir /var/temp/nginx -p)
./nginx (防火牆放開端口80,進行瀏覽器鏈接測試)
10.中止Nginx
./nginx -s quit (或者./nginx -s stop)
11.重啓
./nginx -s reload
12.配置文件
在nginx.conf中進行虛擬主機,反向代理和負載均衡的配置,配置方式參考:
複製Server內容,進行適當修改,如:
#~~~~~~~~~~~經過端口號來進行反向代理~~~~~~~~~~~~~~~~~~~~~~
server {
listen 81;
server_name localhost;
location / {
root html2;
index index.html index.htm;
}
}
#~~~~~~~~~~~經過域名來進行反向代理和負載均衡~~~~~~~~~~~~~~~~~~~~~~
upstream tomcat_server1{
server 192.168.25.135:8080;
}
server {
listen 80;
server_name www.zhang.com;
location / {
proxy_pass http://tomcat_server1;
index index.html index.htm;
}
}
upstream tomcat_server2{
server 192.168.25.135:8081;
server 192.168.25.135:8082;
}
server {
listen 80;
server_name www.bo.com;
location / {
proxy_pass http://tomcat_server2;
index index.html index.htm;
}
}
ps:本身聯繫時,可能遇到hosts文件修改失敗的狀況,這個時候能夠點擊屬性,修改添加用戶,賦予權限便可(視頻)
當執行./nginx -s reload 報錯找不到**.pid 時,執行./nginx -c ***/nginx.conf (舉例鏈接)