nginx启动脚本和配置文件

简介:

一、创建nginx启动脚本

       说明:nginx默认没有启动脚本(apache可以通过apachetl来操作);该脚本包含有start、stop、reload、restart、configtest功能

        vim /etc/init.d/nginx


        内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#!/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


二、 授予755权限,加入系统服务,开机启动

        命令 chmod 755 /etc/init.d/nginx

        命令 chkconfig --add nginx

        命令 chkconfig nginx on


        注:检查配置文件命令 service nginx configtest

                                           /usr/local/nginx/sbin/nginx -t


三、编辑配置nginx主配置文件

       说明:默认的配置文件,分两个部分:整体配置和server配置(即虚拟主机部分)

        vim /usr/local/nginx/conf/nginx.conf

       内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
user nobody nobody;
worker_processes 2;
error_log  /usr/local/nginx/logs/nginx_error .log crit;
# 如果遇到较为少见的错误,我们可以修改nginx的错误日志级别,使其记录最多的日志内容,这样方便我们排查错误,将 crit 改为 debug
 
pid  /usr/local/nginx/logs/nginx .pid;
worker_rlimit_nofile 51200;
 
events
{
     use 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
{
     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;
     # nginx.conf和php-fpm.conf监听方式必须统一,否则会报502,而且socket文件的路径一定要对
 
         fastcgi_index index.php;
         fastcgi_param SCRIPT_FILENAME  /usr/local/nginx/html $fastcgi_script_name;
     }
 
}
 
}


日志格式:

$remote_addr 与$http_x_forwarded_for 用以记录客户端的ip地址
$remote_user :用来记录客户端用户名称
$time_local : 用来记录访问时间与时区
$request : 用来记录请求的url与http协议
$status : 用来记录请求状态;成功是200


四、一般采用主配置文件中开启子配置文件的方法

      说明:主配置文件中,主机部分无需填写,新建一个虚拟主机配置文件


    【主配置文件】

      vim /usr/local/nginx/conf/nginx.conf

      内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
user nobody nobody;
worker_processes 2;
error_log  /usr/local/nginx/logs/nginx_error .log crit;
pid  /usr/local/nginx/logs/nginx .pid;
worker_rlimit_nofile 51200;
 
events
{
     use 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 ;
      include vhosts/*.conf;
}


【子配置文件】

     说明:/usr/local/nginx/conf目录下创建vhosts目录(所有虚拟主机配置文件在该目录下),并创建一个默认配置文件default.conf


 配置文件一:

    说明:default_server,无论主机解析什么域名,都会走这个虚拟主机和配置;root,为了限制上面的情况,把一台默认主机弄成403forbidden,比如root弄到/tmp/1233目录;location php,无需再配置


    命令 mkdir /tmp/1233


    vim /usr/local/nginx/conf/vhosts/default.conf

    内容如下:

1
2
3
4
5
6
7
8
server
{
     listen 80 default_server;
     server_name localhost;
     index index.html index.htm index.php;
     root  /tmp/1233 ;
     deny all;
}


  配置文件二:

    说明:真正虚拟主机配置文件;目录可以设置为discuz论坛目录,php-fpm采用ip+端口的监听方式(socket方式会502报错)


  vim /usr/local/nginx/conf/vhosts/huangzhenping.conf

    内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
server
{
     listen 80;
     server_name huangzhenping.cn;
     index index.html index.htm index.php;
     root  /data/www ;
 
     location ~ \.php$ {
         include fastcgi_params;
          #fastcgi_pass unix:/tmp/php-fcgi.sock;
         fastcgi_pass 127.0.0.1:9000;
         fastcgi_index index.php;
         fastcgi_param SCRIPT_FILENAME  /data/www $fastcgi_script_name;
     }
 
}

 

location规则说明:

         =    开头表示精确匹,如 A 中只匹配根目录结尾的请求,后面不能带任何字符串

         ^~ 开头表示uri以某个常规字符串开头,不是正则匹配

         ~    开头表示区分大小写的正则匹配

         ~*  开头表示不区分大小写的正则匹配

          /    通用匹配,如果没有其它匹配,任何请求都会匹配到       

         @   定义一个命名的 location,使用在内部定向时,例如 error_page,try_files


顺序优先级: (location =) > (location 完整路径) > (location ^~ 路径) > (location ~,~* 正则顺序) > (location 部分起始路径) > (/)










本文转自 huangzp168 51CTO博客,原文链接:http://blog.51cto.com/huangzp/1900625,如需转载请自行联系原作者
目录
相关文章
|
3月前
|
缓存 负载均衡 应用服务中间件
nginx的配置文件详解
本文详细解释了nginx配置文件中的关键指令和区块,如http、server、location、upstream、events等,并通过一个示例配置文件展示了如何设置HTTP服务器、gzip压缩、反向代理、URL重写、错误页面和负载均衡等,强调了配置的灵活性和实际应用。
86 4
|
3月前
|
负载均衡 应用服务中间件 Linux
nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全
这篇博客文章详细介绍了Nginx的下载、安装、配置以及使用,包括正向代理、反向代理、负载均衡、动静分离等高级功能,并通过具体实例讲解了如何进行配置。
216 4
nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全
|
3月前
|
缓存 负载均衡 算法
nginx学习:配置文件详解,负载均衡三种算法学习,上接nginx实操篇
Nginx 是一款高性能的 HTTP 和反向代理服务器,也是一个通用的 TCP/UDP 代理服务器,以及一个邮件代理服务器和通用的 HTTP 缓存服务器。
218 0
nginx学习:配置文件详解,负载均衡三种算法学习,上接nginx实操篇
|
3月前
|
域名解析 网络协议 应用服务中间件
nginx server_name配置文件覆盖不生效
nginx server_name配置文件覆盖不生效
|
3月前
|
应用服务中间件 nginx
nginx 配置文件
nginx 配置文件
|
5月前
|
运维 应用服务中间件 网络安全
运维系列.Nginx配置文件结构功能总结
运维系列.Nginx配置文件结构功能总结
99 0
运维系列.Nginx配置文件结构功能总结
|
6月前
|
Ubuntu 应用服务中间件 Linux
Linux学习之Ubuntu 20中OpenResty的nginx目录里内容和配置文件
总的来说,OpenResty的Nginx配置文件是一个强大的工具,它允许你以非常灵活的方式定义你的Web服务的行为。
132 2
|
6月前
|
前端开发 应用服务中间件 nginx
网页设计,若依项目修改(It must be done)01----若依打包位置,nginx代理前端静态资源和后端接口,就是怎样设置转载,访问固定端口,让他访问其他资料的配置文件,访问/,给你那些
网页设计,若依项目修改(It must be done)01----若依打包位置,nginx代理前端静态资源和后端接口,就是怎样设置转载,访问固定端口,让他访问其他资料的配置文件,访问/,给你那些
|
6月前
|
应用服务中间件 nginx
如何通过Nginx配置将请求转发到conf.d目录下的各个配置文件
如何通过Nginx配置将请求转发到conf.d目录下的各个配置文件
736 2
|
7月前
|
前端开发 应用服务中间件 nginx
nginx前后端分离、多前端部署配置文件
nginx前后端分离、多前端部署配置文件
117 2