[root@hanfeng ~]# cd /usr/local/src/ [root@hanfeng src]#
[root@hanfeng src]# wget http://nginx.org/download/nginx-1.12.1.tar.gz
[root@hanfeng src]# tar zxf nginx-1.12.1.tar.gz [root@hanfeng src]#
[root@hanfeng src]# cd nginx-1.12.1 [root@hanfeng nginx-1.12.1]#
[root@hanfeng nginx-1.12.1]# ./configure --prefix=/usr/local/nginx
[root@hanfeng nginx-1.12.1]# make && make install
7查看nginx目錄javascript
[root@hanfeng nginx-1.12.1]# ls /usr/local/nginx/ conf html logs sbin [root@hanfeng nginx-1.12.1]#
[root@hanfeng nginx-1.12.1]# /usr/local/nginx/sbin/nginx -t nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful [root@hanfeng nginx-1.12.1]#
[root@hanfeng nginx-1.12.1]# vim /etc/init.d/nginx 將如下文件拷貝進去 #!/bin/bash # chkconfig: - 30 21 # description: http service. # Source Function Library . /etc/init.d/functions # Nginx Settings NGINX_SBIN="/usr/local/nginx/sbin/nginx" NGINX_CONF="/usr/local/nginx/conf/nginx.conf" NGINX_PID="/usr/local/nginx/logs/nginx.pid" RETVAL=0 prog="Nginx" start() { echo -n $"Starting $prog: " mkdir -p /dev/shm/nginx_temp daemon $NGINX_SBIN -c $NGINX_CONF RETVAL=$? echo return $RETVAL } stop() { echo -n $"Stopping $prog: " killproc -p $NGINX_PID $NGINX_SBIN -TERM rm -rf /dev/shm/nginx_temp RETVAL=$? echo return $RETVAL } reload() { echo -n $"Reloading $prog: " killproc -p $NGINX_PID $NGINX_SBIN -HUP RETVAL=$? echo return $RETVAL } restart() { stop start } configtest() { $NGINX_SBIN -c $NGINX_CONF -t return 0 } case "$1" in start) start ;; stop) stop ;; reload) reload ;; restart) restart ;; configtest) configtest ;; *) echo $"Usage: $0 {start|stop|reload|restart|configtest}" RETVAL=1 esac exit $RETVAL 而後保存退出
[root@hanfeng nginx-1.12.1]# chmod 755 /etc/init.d/nginx [root@hanfeng nginx-1.12.1]#
[root@hanfeng nginx-1.12.1]# chkconfig --add nginx [root@hanfeng nginx-1.12.1]#
[root@hanfeng nginx-1.12.1]# chkconfig nginx on [root@hanfeng nginx-1.12.1]#
[root@hanfeng nginx-1.12.1]# cd /usr/local/nginx/conf/ [root@hanfeng conf]# ls fastcgi.conf koi-utf nginx.conf uwsgi_params fastcgi.conf.default koi-win nginx.conf.default uwsgi_params.default fastcgi_params mime.types scgi_params win-utf fastcgi_params.default mime.types.default scgi_params.default [root@hanfeng conf]# mv nginx.conf nginx.conf.1 [root@hanfeng conf]#
[root@hanfeng conf]# vim nginx.conf 在配置文件中添加如下內容 user nobody nobody; // user定義啓動nginx的用戶 worker_processes 2; //定義子進程有幾個 error_log /usr/local/nginx/logs/nginx_error.log crit; //錯誤日誌 pid /usr/local/nginx/logs/nginx.pid; // PID所在 worker_rlimit_nofile 51200; //nginx最多能夠打開文件的上限 events { use epoll; //使用epoll模式 worker_connections 6000; // 進程最大有多少個鏈接 } http { include mime.types; default_type application/octet-stream; server_names_hash_bucket_size 3526; server_names_hash_max_size 4096; log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]' ' $host "$request_uri" $status' ' "$http_referer" "$http_user_agent"'; sendfile on; tcp_nopush on; keepalive_timeout 30; client_header_timeout 3m; client_body_timeout 3m; send_timeout 3m; connection_pool_size 256; client_header_buffer_size 1k; large_client_header_buffers 8 4k; request_pool_size 4k; output_buffers 4 32k; postpone_output 1460; client_max_body_size 10m; client_body_buffer_size 256k; client_body_temp_path /usr/local/nginx/client_body_temp; proxy_temp_path /usr/local/nginx/proxy_temp; fastcgi_temp_path /usr/local/nginx/fastcgi_temp; fastcgi_intercept_errors on; tcp_nodelay on; gzip on; gzip_min_length 1k; gzip_buffers 4 8k; gzip_comp_level 5; gzip_http_version 1.1; gzip_types text/plain application/x-javascript text/css text/htm application/xml; server //一個server 對應一個虛擬主機,定義這個,才能正常訪問網站 下面一整段,就是一個默認的虛擬主機 { listen 80; server_name localhost; //網站域名 index index.html index.htm index.php; root /usr/local/nginx/html; //網站的根目錄 location ~ \.php$ //配置解析php的部分 { include fastcgi_params; fastcgi_pass unix:/tmp/php-fcgi.sock; //nginx經過這一行配置來調用php-fpm服務 # fastcgi_pass 127.0.0.1:9000; //若是php-fpm監聽的是9000端口,直接這樣寫配置便可 fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name; } } } 而後保存退出
[root@hanfeng conf]# /usr/local/nginx/sbin/nginx -t nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful [root@hanfeng conf]#
[root@hanfeng conf]# /etc/init.d/nginx start Starting nginx (via systemctl): [ 肯定 ] [root@hanfeng conf]#
[root@hanfeng conf]# ps aux |grep nginx root 16411 0.0 0.0 20996 624 ? Ss 21:53 0:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf nobody 16412 0.0 0.3 23440 3212 ? S 21:53 0:00 nginx: worker process nobody 16413 0.0 0.3 23440 3212 ? S 21:53 0:00 nginx: worker process root 16415 0.0 0.0 112676 984 pts/0 R+ 21:55 0:00 grep --color=auto nginx [root@hanfeng conf]#
[root@hanfeng conf]# curl localhost <!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> <style> body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; } </style> </head> <body> <h1>Welcome to nginx!</h1> <p>If you see this page, the nginx web server is successfully installed and working. Further configuration is required.</p> <p>For online documentation and support please refer to <a href="http://nginx.org/">nginx.org</a>.<br/> Commercial support is available at <a href="http://nginx.com/">nginx.com</a>.</p> <p><em>Thank you for using nginx.</em></p> </body> </html> [root@hanfeng conf]#
[root@hanfeng conf]# vim /usr/local/nginx/html/1.php 寫入 <?php echo "this is nginx test page."; [root@hanfeng conf]# curl localhost/1.php this is nginx test page.[root@hanfeng conf]#
server { listen 80 default_server; // 有這個標記的就是默認虛擬主機 server_name aaa.com; index index.html index.htm index.php; root /data/wwwroot/default; }
[root@hanfeng conf]# vim /usr/local/nginx/conf/nginx.conf 刪除的內容 server { listen 80; server_name localhost; index index.html index.htm index.php; root /usr/local/nginx/html; location ~ \.php$ { include fastcgi_params; fastcgi_pass unix:/tmp/php-fcgi.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name; } }
[root@hanfeng conf]# vim /usr/local/nginx/conf/nginx.conf 增長其中的一行 application/xml; include vhost/*.conf; } 而後保存退出
[root@hanfeng conf]# mkdir /usr/local/nginx/conf/vhost [root@hanfeng conf]#
[root@hanfeng conf]# cd /usr/local/nginx/conf/vhost [root@hanfeng vhost]#
[root@hanfeng vhost]# vim aaa.com.conf 添加的文件內容 server { listen 80 default_server; server_name aaa.com; index index.html index.htm index.php; root /data/wwwroot/default; } 而後保存退出
[root@hanfeng vhost]# mkdir -p /data/wwwroot/default/ [root@hanfeng vhost]#
[root@hanfeng vhost]# cd /data/wwwroot/default/ [root@hanfeng default]#
[root@hanfeng default]# vim index.html 寫入 This is the default site. 而後保存退出
[root@hanfeng default]# /usr/local/nginx/sbin/nginx -t
nginx: [emerg] unexpected "}" in /usr/local/nginx/conf/nginx.conf:47 nginx: configuration file /usr/local/nginx/conf/nginx.conf test failed
在後面添加 ; 便可 include vhost/*.conf;
[root@hanfeng default]# /usr/local/nginx/sbin/nginx -t nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@hanfeng default]# /usr/local/nginx/sbin/nginx -s reload [root@hanfeng default]#
[root@hanfeng default]# curl localhost This is the default site. [root@hanfeng default]# curl -x127.0.0.1:80 bbb.com This is the default site. [root@hanfeng default]#
由於修改了nginx.conf的配置,如今看到的默認索引頁,是咱們剛剛新增的vhost的虛擬主機的索引頁了 定義默認虛擬主機的兩種辦法: 1.默認虛擬主機,是根據目錄的第一個.conf了進行選擇,因此只須要在vhost目錄下依次建立就能夠了,固然這種方法不智能 2.只須要在vhost目錄的.conf配置文件內,加上一個「default_server 」便可,把當前的這個配置對應的網站設置爲第一個默認虛擬主機php
server { listen 80; server_name test.com; index index.html index.htm index.php; root /data/wwwroot/test.com; location / { auth_basic "Auth"; auth_basic_user_file /usr/local/nginx/conf/htpasswd; } }
location /admin/ { auth_basic "Auth"; auth_basic_user_file /usr/local/nginx/conf/htpasswd; }
[root@hanfeng ~]# cd /usr/local/nginx/conf/vhost/ [root@hanfeng vhost]#
[root@hanfeng vhost]# ls aaa.com.conf [root@hanfeng vhost]# vim test.com.conf 添加如下內容 server { listen 80; server_name test.com; index index.html index.htm index.php; root /data/wwwroot/test.com; location / //表示全站,都須要進行用戶認證 #location /admin // 這個地方只要加上」 /admin 」 就變成 針對這個站點的「admin」 這個目錄須要用戶認證 #location ~ admin.php //若是把這行這樣寫,就會變成,匹配 「 admin.php 」這個頁面的時候才須要用戶認證 { auth_basic "Auth"; //定義用戶認證的名字 auth_basic_user_file /usr/local/nginx/conf/htpasswd; //用戶名密碼文件 } } 保存退出
/usr/local/apache2.4/bin/htpasswd
yum install -y httpd
[root@hanfeng vhost]# yum install -y httpd 在yum安裝後,能夠直接使用htpasswd命令
[root@hanfeng vhost]# htpasswd -c /usr/local/nginx/conf/htpasswd hanfeng New password: //密碼hanfeng Re-type new password: Adding password for user hanfeng [root@hanfeng vhost]#
[root@hanfeng vhost]# cat /usr/local/nginx/conf/htpasswd hanfeng:$apr1$Vvig1g73$oHYs5Ng/ubqoYXzZT4TWP/ [root@hanfeng vhost]#
[root@hanfeng vhost]# htpasswd /usr/local/nginx/conf/htpasswd gurui New password: Re-type new password: Adding password for user gurui [root@hanfeng vhost]# cat /usr/local/nginx/conf/htpasswd hanfeng:$apr1$Vvig1g73$oHYs5Ng/ubqoYXzZT4TWP/ gurui:$apr1$mqc2Dgwa$qVvurqGN6gj8hX3tEpQ6j/ [root@hanfeng vhost]#
[root@hanfeng vhost]# /usr/local/nginx/sbin/nginx -t nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful [root@hanfeng vhost]#
[root@hanfeng vhost]# /usr/local/nginx/sbin/nginx -s reload [root@hanfeng vhost]#
[root@hanfeng vhost]# curl -x127.0.0.1:80 test.com <html> <head><title>401 Authorization Required</title></head> <body bgcolor="white"> <center><h1>401 Authorization Required</h1></center> <hr><center>nginx/1.12.1</center> </body> </html> [root@hanfeng vhost]# curl -x127.0.0.1:80 test.com -I HTTP/1.1 401 Unauthorized Server: nginx/1.12.1 Date: Wed, 03 Jan 2018 16:52:23 GMT Content-Type: text/html Content-Length: 195 Connection: keep-alive WWW-Authenticate: Basic realm="Auth" [root@hanfeng vhost]#
[root@hanfeng vhost]# curl -uhanfeng:hanfeng -x127.0.0.1:80 test.com <html> <head><title>404 Not Found</title></head> <body bgcolor="white"> <center><h1>404 Not Found</h1></center> <hr><center>nginx/1.12.1</center> </body> </html> [root@hanfeng vhost]#
[root@hanfeng vhost]# mkdir /data/wwwroot/test.com [root@hanfeng vhost]# echo 「test.com」>/data/wwwroot/test.com/index.html [root@hanfeng vhost]#
[root@hanfeng vhost]# curl -uhanfeng:hanfeng -x127.0.0.1:80 test.com 「test.com」 [root@hanfeng vhost]#
[root@hf-01 vhost]# curl -uhanfeng:hanfeng -x127.0.0.1:80 test.com/admin/ <html> <head><title>404 Not Found</title></head> <body bgcolor="white"> <center><h1>404 Not Found</h1></center> <hr><center>nginx/1.12.1</center> </body> </html> [root@hf-01 vhost]#
[root@hf-01 vhost]# vim test.com.conf 在location / 後加上admin/ 目錄 server { listen 80; server_name test.com; index index.html index.htm index.php; root /data/wwwroot/test.com; location /admin/ { auth_basic "Auth"; auth_basic_user_file /usr/local/nginx/conf/htpasswd; } } 保存退出
[root@hf-01 vhost]# /usr/local/nginx/sbin/nginx -t nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful [root@hf-01 vhost]#
[root@hf-01 vhost]# /usr/local/nginx/sbin/nginx -s reload [root@hf-01 vhost]#
[root@hf-01 vhost]# curl -x127.0.0.1:80 test.com 「test.com」 [root@hf-01 vhost]#
6.訪問test.com/admin/目錄css
[root@hf-01 vhost]# curl -x127.0.0.1:80 test.com/admin/ <html> <head><title>401 Authorization Required</title></head> <body bgcolor="white"> <center><h1>401 Authorization Required</h1></center> <hr><center>nginx/1.12.1</center> </body> </html> [root@hf-01 vhost]#
[root@hf-01 vhost]# mkdir /data/wwwroot/test.com/admin [root@hf-01 vhost]#
[root@hf-01 vhost]# echo "test.com admin dir" > /data/wwwroot/test.com/admin in/index.html [root@hf-01 vhost]#
[root@hf-01 vhost]# curl -x127.0.0.1:80 test.com/admin/ <html> <head><title>401 Authorization Required</title></head> <body bgcolor="white"> <center><h1>401 Authorization Required</h1></center> <hr><center>nginx/1.12.1</center> </body> </html> [root@hf-01 vhost]# curl -uhanfeng:hanfeng -x127.0.0.1:80 test.com/admin/ test.com admin dir [root@hf-01 vhost]#
[root@hf-01 vhost]# vim test.com.conf 在 location 後加~ admin.php便可 server { listen 80; server_name test.com; index index.html index.htm index.php; root /data/wwwroot/test.com; location ~ admin.php { auth_basic "Auth"; auth_basic_user_file /usr/local/nginx/conf/htpasswd; } } 保存退出
[root@hf-01 vhost]# /usr/local/nginx/sbin/nginx -t nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful [root@hf-01 vhost]#
[root@hf-01 vhost]# /usr/local/nginx/sbin/nginx -s reload [root@hf-01 vhost]#
[root@hf-01 vhost]# curl -x127.0.0.1:80 test.com/admin/ test.com admin dir [root@hf-01 vhost]# curl -x127.0.0.1:80 test.com/admin.php <html> <head><title>401 Authorization Required</title></head> <body bgcolor="white"> <center><h1>401 Authorization Required</h1></center> <hr><center>nginx/1.12.1</center> </body> </html> [root@hf-01 vhost]#
server { listen 80; server_name test.com test1.com test2.com; index index.html index.htm index.php; root /data/wwwroot/test.com; if ($host != 'test.com' ) { rewrite ^/(.*)$ http://test.com/$1 permanent; } }
[root@hf-01 vhost]# vim test.com.conf server { listen 80; server_name test.com test1.com test2.com; index index.html index.htm index.php; root /data/wwwroot/test.com; if ($host != 'test.com' ) { rewrite ^/(.*)$ http://test.com/$1 permanent; } } 保存退出
[root@hf-01 vhost]# /usr/local/nginx/sbin/nginx -t nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful [root@hf-01 vhost]# /usr/local/nginx/sbin/nginx -s reload [root@hf-01 vhost]#
[root@hf-01 vhost]# curl -x127.0.0.1:80 test2.com/index.html -I HTTP/1.1 301 Moved Permanently Server: nginx/1.12.1 Date: Wed, 03 Jan 2018 22:23:52 GMT Content-Type: text/html Content-Length: 185 Connection: keep-alive Location: http://test.com/index.html [root@hf-01 vhost]#
[root@hanfeng vhost]# curl -x127.0.0.1:80 test2.com/fgdgfdg -I HTTP/1.1 301 Moved Permanently Server: nginx/1.12.1 Date: Thu, 04 Jan 2018 12:57:12 GMT Content-Type: text/html Content-Length: 185 Connection: keep-alive Location: http://test.com/fgdgfdg [root@hanfeng vhost]#
[root@hf-01 vhost]# curl -x127.0.0.1:80 hanfeng.com/admin/index.html -I HTTP/1.1 404 Not Found Server: nginx/1.12.1 Date: Wed, 03 Jan 2018 22:27:37 GMT Content-Type: text/html Content-Length: 169 Connection: keep-alive [root@hf-01 vhost]#
nginx.conf 配置詳解1html
nginx.conf 配置詳解2java
nginx rewrite四種flag node
nginx rewrite四種flag linux