前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Nginx的安装部署和配置

Nginx的安装部署和配置

作者头像
java攻城狮
发布2020-10-10 16:14:17
6600
发布2020-10-10 16:14:17
举报
文章被收录于专栏:个人积累

Centos7.6 安装步骤

代码语言:javascript
复制
# 添加镜像至yum
 sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
 
 # 全局按照nginx
 yum install -y nginx
 
 # 查看安装路径和文件
 whereis nginx
 
 # 启动创建nginx服务
 sudo systemctl start nginx.service
 
 # 设置成开机自启
 sudo systemctl enable nginx.service
 
 # 开发防火墙80 端口 可以不执行
 firewall-cmd --add-port=80/tcp --permanent

# 编辑修改配置文件 
 vim /etc/nginx/nginx.conf
nginx安装
  1. 添加yum源 sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
  2. 安装 yum install -y nginx
  3. 查看安装位置 whereis nginx
  4. 设置开机启动 sudo systemctl start nginx.service sudo systemctl enable nginx.service
  5. 防火墙开启端口 firewall-cmd --add-port=80/tcp --permanent
  6. 重新加载防火墙 firewall-cmd --reload
nginx 常用命令
代码语言:javascript
复制
#启动Nginx,使用默认配置文件启动,如果Nginx没有关闭,使用此种方式启动会出现端口被占用的情况
nginx
#停止nginx
nginx -s stop
#如果上面停止nginx的方式无效 可以强制停止
pkill -9 nginx
#重启nginx
nginx -s reload
#由于在Linux下写配置文件,容易丢个符号,导致启动失败,所以启动之前可以检查一下配置文件的正确性
nginx -t
#检查指定配置文件
nginx -t -c /etc/nginx/nginx.conf
nginx配置文件说明
代码语言:javascript
复制
#window 下可以不指定用户
#user  nobody;
#linux 下必须指定
user administrator administrators; #配置用户或者组,默认为nobody;用于显示谁运行的nginx

#根据cpu内核决定数量
worker_processes  2;


events {
    #设置单个工作进程最大连接数102400
    worker_connections  1024;
	#(惊群现象)优化同一时刻只有一个请求而避免多个睡眠进程被唤醒的设置,on为防止被同时唤醒,默认为off,因此nginx刚安装完以后要进行适当的优化。
	accept_mutex on; 
	#打开同时接受多个新网络连接请求的功能。
	multi_accept on; 
	#使用epoll事件驱动,因为epoll的性能相比其他事件驱动要好很多;其他事件驱动模型,select|poll|kqueue|resig|/dev/poll|eventport
    use epoll; 
}


http {
    #文件扩展名与文件类型映射表   MIME——Multipurpose Internet Mail Extension(多用途因特网邮件扩展)
	#mime.types可在同nginx.confx目录下看到,即支持多种数据类型 
    include       mime.types; 
	#默认文件类型,application/octet-stream为http前后台交互类型,这个类型表示他是一个字节流,浏览器默认处理字节流的的方式就是下载,所以他是主要用于下载
    default_type  application/octet-stream;
	指令指定是否传递4xx和5xx错误信息到客户端,或者允许nginx使用error_page处理错误信息
    #fastcgi_intercept_errors on#默认off
	proxy_intercept_errors
    #sendfile解决了传统的文件传输里面(read/write方法),
	#传统的文件传输方式:
	#1.调用read函数,文件被copy到内核缓冲区
	#2.read函数返回,文件数据从内核缓冲区copy到用户缓冲区
	#3.write函数调用,将文件数据从用户缓冲区copy到内核与socket相关的缓冲区
	#4.数据从socket缓冲区copy到相关协议引擎。
	#sendfile文件传输方式:
	#1.sendfile系统调用,文件数据被copy至内核缓冲区
	#2.再从内核缓冲区copy至内核中socket相关的缓冲区
	#3.最后再socket相关的缓冲区copy到协议引擎
    sendfile        on;
	server_names_hash_bucket_size 128;
	#指定来自客户端请求头的headerbuffer大小,设置为32KB
	client_header_buffer_size 32k;
	#指定客户端请求中较大的消息头的缓存最大数量和大小,这里是4个32KB
	large_client_header_buffers 4 32k;
	#上传文件大小
	client_max_body_size 356m;
	#nginx的HttpLog模块指定,指定nginx日志的输出格式,输出格式为access
	log_format access '$remote_addr - $remote_user [$time_local] "$request" '
	'$status $body_bytes_sent "$http_referer" '
	'"$http_user_agent" "$http_x_forwarded_for"';
	#access日志存在未知
	access_log /var/log/nginx/access.log access;
	#开启高效模式文件传输模式,将tcp_nopush和tcp_nodely两个指另设置为on,用于防止网络阻塞。
	sendfile on;
	tcp_nopush on;
	tcp_nodely on;
    #链接超时时间 默认65s;
    keepalive_timeout  65;
	
	
    开启缓存
	proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;


    
    #负载均衡实现
	#1)、轮询(默认) 
  #每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 
    #2)、weight 
  #指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 
    #2)、ip_hash 
  #每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。  
    #3)、fair(第三方) 
  #按后端服务器的响应时间来分配请求,响应时间短的优先分配。  
    #4)、url_hash(第三方)
	upstream tomcat_server{
	    #实现多台服务器之间session的共享
	    ip_hash;
		server 127.0.0.1:8081 weight=1;
		server 127.0.0.1:8080 weight=1;
	}
    server {
        #单链接请求上限次数。
		keepalive_requests 120;
		#监听端口
		listen       80;
		#监听地址
        server_name  localhost;

        
        #请求的url / 全匹配;   过滤条件通过正则表达是书写
        location / {
		    #启用proxy_cache,并指定key_zone。另外,如果proxy_cache off表示关闭掉缓存
			proxy_cache  my_cache;
			#请求转向tomcat_server
			proxy_pass http://tomcat_server;
			#拒绝该IP访问
			#deny 127.0.0.1;
			#允许该ip访问
			#allow 136.19.111.5;
        }
	#对jsp和do结尾的url也去访问tomcat服务
    location ~ \.(jsp|do)$ {  
           proxy_pass http://tomcat_server;
     }
      
    #对js、css、png、gif结尾的都去访问根目录下查找
    location ~ \.(js|css|png|gif)$ {  
              root F:/javaweb;
    }
  

		#错误日志存放位置
		#错误日志级别:常见的错误日志级别有[debug | info | notice | warn | error | crit | alert | emerg],级别越高记录的信息越少。
		error_log logs/error_www.abc.com.log error;
		#报错50?错误访问本地html/50x页面
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
	    #报错404错误访问本地html/404页面 自定义的404页面必须大于512字节,否则可能会出现IE默认的404页面
        error_page  404  /404.html;
        location = /404.html{
		    root   html;
		}
		//没有适当的处理方法nginx不会拦截错误;
    }


    
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-04-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Centos7.6 安装步骤
    • nginx安装
      • nginx 常用命令
        • nginx配置文件说明
        相关产品与服务
        负载均衡
        负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档