linux下安裝配置nginx並配置

一,安裝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
如上圖,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項目是否成功
在這裏插入圖片描述
如圖能正確訪問項目,配置成功!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章