一,安裝nginx
有問題一步步來
nginx下載地址: http://nginx.org/en/download.html
把下載好的nginx版本放到/usr/local中
1.1 解壓
[root@vw010001135067 ~]# cd /usr/local/
[root@vw010001135067 local]# tar -zvxf nginx-1.10.2.tar.gz
1.2 進入nginx文件夾,執行./configure命令
[root@vw010001135067 local]# cd nginx-1.10.2
[root@vw010001135067 nginx-1.10.2]# ./configure
報錯如下:
checking for OS
+ Linux 2.6.32-431.el6.x86_64 x86_64
checking for C compiler ... not found
./configure: error: C compiler cc is not found
出現這個錯誤。那麼就是gcc 包沒有安裝。
1.2.1 安裝gcc
查看gcc
[root@vw010001135067 nginx-1.10.2]# whereis gcc
安裝gcc
[root@vw010001135067 nginx-1.10.2]# yum -y install gcc
安裝成功後再次查看
[root@vw010001135067 nginx-1.10.2]# whereis gcc
gcc: /usr/bin/gcc /usr/lib/gcc /usr/libexec/gcc /usr/share/man/man1/gcc.1.gz
gcc安裝好了。
1.2.2 繼續執行./configure
[root@vw010001135067 nginx-1.10.2]# ./configure
checking for OS
+ Linux 2.6.32-431.el6.x86_64 x86_64
checking for C compiler ... found
......
checking for PCRE library ... not found
checking for PCRE library in /usr/local/ ... not found
checking for PCRE library in /usr/include/pcre/ ... not found
checking for PCRE library in /usr/pkg/ ... not found
checking for PCRE library in /opt/local/ ... not found
./configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using --without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using --with-pcre=<path> option.
1.2.3 出現如上錯誤。安裝pcre-devel
[root@vw010001135067 nginx-1.10.2]# yum install pcre-devel
再次執行./configure
error: the HTTP gzip module requires the zlib library.
You can either disable the module by using --without-http_gzip_module
option, or install the zlib library into the system, or build the zlib library
statically from the source with nginx by using --with-zlib=<path> option.
如果有這個錯誤 那麼執行
yum install zlib-devel
1.2.4 執行./configure後沒有報錯
[root@vw010001135067 nginx-1.10.2]# ./configure
checking for OS
+ Linux 2.6.32-431.el6.x86_64 x86_64
checking for C compiler ... found
+ using GNU C compiler
+ gcc version: 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC)
.......
Configuration summary
+ using system PCRE library
+ OpenSSL library is not used
+ md5: using system crypto library
+ sha1: using system crypto library
+ using system zlib library
nginx path prefix: "/usr/local/nginx"
nginx binary file: "/usr/local/nginx/sbin/nginx"
nginx modules path: "/usr/local/nginx/modules"
nginx configuration prefix: "/usr/local/nginx/conf"
nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
nginx pid file: "/usr/local/nginx/logs/nginx.pid"
nginx error log file: "/usr/local/nginx/logs/error.log"
nginx http access log file: "/usr/local/nginx/logs/access.log"
nginx http client request body temporary files: "client_body_temp"
nginx http proxy temporary files: "proxy_temp"
nginx http fastcgi temporary files: "fastcgi_temp"
nginx http uwsgi temporary files: "uwsgi_temp"
nginx http scgi temporary files: "scgi_temp"
1.3 如果你想使用openssl 功能,sha1 功能。 那麼安裝openssl ,sha1 吧
[root@vw010001135067 nginx-1.10.2]# yum install openssl openssl-devel
[root@vw010001135067 nginx-1.10.2]# install perl-Digest-SHA1.x86_64
1.3.1 開啓ssl 模塊 執行./configure –with-http_ssl_module
[root@vw010001135067 nginx-1.10.2]# ./configure --with-http_ssl_module
1.3.2 啓用“server+status”頁,執行./configure –with-http_stub_status_module
[root@vw010001135067 nginx-1.10.2]# ./configure --with-http_stub_status_module
上面兩個命令同時啓動可以
[root@vw010001135067 nginx-1.10.2]# ./configure --with-http_stub_status_module --with-http_ssl_module
1.4 上面configure就通過了
執行make 命令,執行make install 命令
[root@vw010001135067 nginx-1.10.2]# make
[root@vw010001135067 nginx-1.10.2]# make install
至此,nginx 執行成功了
1.5 配置環境變量
在/etc/profile 中加入配置
打開配置文件
[root@vw010001135067 nginx-1.10.2]# vi /etc/profile
在配置文件中加入
#nginx configure
export NGINX_HOME=/usr/local/nginx-1.10.2
export PATH=$PATH:$NGINX_HOME/sbin
我開始像上面填寫,結果nginx -v的時候查找不到。注意到上面我的nginx_home配置的地址不對。先找到nginx的安裝地址
[root@vw010001135067 nginx-1.10.2]# whereis nginx
nginx: /usr/local/nginx
還真是地址寫錯了,把上面的改成
#nginx configure
export NGINX_HOME=/usr/local/nginx
export PATH=$PATH:$NGINX_HOME/sbin
編譯完保存退出並執行
[root@vw010001135067 nginx-1.10.2]# source /etc/profile
使配置生效。
1.6 查看nginx版本
查看nginx版本
[root@vw010001135067 nginx]# nginx -v
nginx version: nginx/1.10.2
整個過程成功了!
二、修改nginx.conf
2.1 啓動nginx
nginx -c conf/nginx.conf
我的nginx服務在http://10.1.135.67/,配置成功後,現在啓動nginx
啓動成功,在瀏覽器打開http://10.1.135.67/,默認端口號80.
如上圖,nginx已經正常工作了。
2.2 配置tomcat服務
現在我的tomcat服務在10.1.29.15,需要通過nginx轉發。那麼打開nginx.conf,修改配置文件。如下,添加:
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;#最大連接數,默認爲512
accept_mutex on; #設置網路連接序列化,防止驚羣現象發生,默認爲on
multi_accept on; #設置一個進程是否同時接受多個網絡連接,默認爲off
#use epoll; #事件驅動模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport
}
http {
#文件擴展名與文件類型映射表
include mime.types;
#默認文件類型,默認爲text/plain
default_type application/octet-stream;
#自定義格式
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
#combined爲日誌格式的默認值
access_log logs/access.log main;
#允許sendfile方式傳輸文件,默認爲off,可以在http塊,server塊,location塊
sendfile on;
sendfile_max_chunk 100k; #每個進程每次調用傳輸數量不能大於設定的值,默認爲0,即不設上限。
#tcp_nopush on;
#連接超時時間,默認爲75s,可以在http,server,location塊。
keepalive_timeout 65;
#gzip on;
upstream upload {
server 10.1.29.15:8080;
}
error_page 404 https://www.baidu.com; #錯誤頁
server {
keepalive_requests 120; #單連接請求上限次數。
listen 80; #監聽端口
server_name localhost; #監聽地址
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_connect_timeout 15s;
proxy_send_timeout 15s;
proxy_read_timeout 30m;//這個是服務器對你等待最大的時間,也就是說,當你webSocket使用nginx轉發的時候,如果30分鐘內沒有通訊,依然是會斷開的,所以,你可以按照你的需求來設定
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Connection "";
proxy_set_header Upgrade $http_upgrade;//這是webSocket的配置
proxy_set_header Connection "upgrade";//這是webSocket的配置
proxy_pass http://upload; #請求轉向upload 定義的服務器列表
client_max_body_size 1024m;
}
}
}
配置好後,保存配置文件,並且重啓nginx
[root@vw010001135067 nginx]# nginx -s reload
在瀏覽器調用upload項目是否成功
如圖能正確訪問項目,配置成功!