服务器信息
IP: 139.129.232.***
端口: 10022
账号: ****
密码: ******
环境配置路径:
/usr/local/
项目路径:
/cn/com/******
/cn/com/***
mkdir 文件夹名 创建文件夹
一、 修改Centos端口号的方法:
1.修改配置文件:/etc/ssh/sshd_config ,找到 “#port ”
2.启动:systemctl start sshd.service
注意:CentOS 7 下重启服务不再通过 service 操作,而是通过 systemctl 操作。
查看:systemctl status sshd.service
启动:systemctl start sshd.service
重启:systemctl restart sshd.service
自启:systemctl enable sshd.service
二、CentOS 7 下安装 Nginx
1. gcc 安装
安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装:
yum install gcc-c++
2. PCRE pcre-devel 安装
PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。命令:
yum install -y pcre pcre-devel
3. zlib 安装
zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。
yum install -y zlib zlib-devel
4. OpenSSL 安装
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。
nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库。
yum install -y openssl openssl-devel
5. 进入配置目录
6. 使用wget命令下载(推荐)。
wget -c https://nginx.org/download/nginx-1.10.1.tar.gz
7. 依然是直接命令:
tar -zxvf nginx-1.10.1.tar.gz
cd nginx-1.10.1
8. 使用默认配置
./configure
9. 编译安装
make
make install
查找安装路径:whereis nginx
10.conf.con配置
######### 全局配置 #########
#nginx worker进程运行用户以及用户组
user root;
# nginx进程数,建议按照cpu数目来指定,一般为它的倍数。
worker_processes 2;
# 这个指令是指当一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(查看ulimit值命令:ulimit -n)与nginx进程数相除,但是nginx分配请求并不是那么均匀,所以最好与ulimit -n的值保持一致
worker_rlimit_nofile 65535;
#定位全局错误日志文件,级别以notice显示,还有debug,info,warn,error,crit模式,debug输出最多,#crir输出最少,根据实际环境而定
error_log logs/error.log notice;
#指定进程id的存储文件位置
pid logs/nginx.pid;
#工作模式及连接数上限
events {
#epoll是多路复用IO(I/O Multiplexing)中的一种方式,linux平台2.6以上(查看系统内核版本命令:uname -a)系统支持epoll时nginx默认采用epoll来高效的处理事件,可以大大提高nginx的性能
use epoll;
#单个后台worker process进程的最大并发链接数,在设置了反向代理的情况下,max_clients = worker_processes(nginx进程数) * worker_connections(并发链接数) / 4 具体原因是worker_connections值的设置跟物理内存大小有关,因为并发受IO约束,max_clients的值须小于系统可以打开的最大文件数,而系统可以打开的最大文件数和内存大小成正比,一般1GB内存的机器上可以打开的文件数大约是10万左右
worker_connections 2048;
#Tips:
# 我们来看看360M内存的VPS可以打开的文件句柄数是多少:
# $ cat /proc/sys/fs/file-max
# 输出 34336
# 32000 < 34336,即并发连接总数小于系统可以打开的文件句柄总数,这样就在操作系统可以承受的范围之内
# 所以,worker_connections 的值需根据 worker_processes 进程数目和系统可以打开的最大文件总数进行适当地进行设置
# 使得并发总数小于操作系统可以打开的最大文件数目,其实质也就是根据主机的物理CPU和内存进行配置
# 当然,理论上的并发总数可能会和实际有所偏差,因为主机还有其他的工作进程需要消耗系统资源。
}
######### http配置 #########
#Http服务器配置,Gzip配置
http {
#加载配置的虚拟主机
include vhosts/zy/*.conf;
#加载配置的proxy
include proxy.conf;
#设定mime类型,类型由mime.type文件定义
include mime.types;
#核心模块指令,智力默认设置为二进制流,当文件类型未定义时使用这种方式
default_type application/octet-stream;
#sendfile 指令指定nginx是否调用sendfile函数(zero copy 方式)来输出文件,对于普通应用,必须设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的uptime.
sendfile on;
#开启防止网络阻塞
tcp_nopush on;
#客户端长连接保存活动的超时时间,单位是秒
keepalive_timeout 65;
#开启gzip压缩
gzip on;
gzip_min_length 1k; #设置允许压缩的页面最小字节数gzip_buffers 4 16k;#申请4个单位为16K的内存作为压缩结果流缓存
gzip_buffers 4 16k; #不压缩临界值,大于1K的才压缩,一般不用改
gzip_http_version 1.1; #压缩版本(默认1.1,前端如果是squid2.5请使用1.0)
gzip_comp_level 5; #指定gzip压缩比,1-9数字越小,压缩比越小,速度越快
gzip_types text/plain application/json application/x-javascript text/css application/xml; #压缩类型
gzip_vary on; #让前端的缓存服务器进过gzip压缩的页面,它跟Squid等缓存服务有关,on的话会在Header里增加"Vary: Accept-Encoding",
gzip_disable "MSIE [1-6]\."; #IE6对Gzip不怎么友好,不给它Gzip了
#配置一个请求流
upstream tomcats {
server 127.0.0.1:8080 weight=1; #负载均衡配置,服务器占重比
server 127.0.0.1:8088 weight=1;
}
}
11.proxy.conf配置(pro具体设置)
#websocket配置
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 7200s;
#缓冲区优化
proxy_buffering on; #proxy_buffering设置为off,则proxy_buffers和proxy_busy_buffers_size失效,无论proxy_buffering是否开启,对proxy_buffer_size都是生效的.
proxy_buffers 4 256k; #缓冲区,网页平均在32k以下的设置
proxy_buffer_size 256k; #设置代理服务器(nginx)缓冲区大小
proxy_busy_buffers_size 256k; #高负荷下缓冲大小
proxy_temp_file_write_size 120m; #临时文件缓存配置:一次访问能写入的临时文件的大小,默认是proxy_buffer_size和proxy_buffers中设置的缓冲区大小的2倍,Linux下一般是8k
proxy_max_temp_file_size 128m; #临时文件缓存配置:响应内容大于proxy_buffers指定的缓冲区时, 写入硬盘的临时文件的大小. 如果超过了这个值, Nginx将与Proxy服务器同步的传递内容, 而不再缓冲到硬盘. 设置为0时, 则直接关闭硬盘缓冲.
#其它配置
proxy_set_header X-Real-IP $remote_addr; #获取真实IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #获取代理者的真实ip
client_max_body_size 50m; #上传文件大小配置
client_body_buffer_size 256k; #POST请求带参参数数大小设置
proxy_next_upstream http_500 http_502 http_503 http_404 error timeout invalid_header; #标识tomcat返回以下(http_500 http_502 http_503 http_504 error timeout invalid_header)错误码都会进行重试另外一台服务器
12.server.conf配置
server {
#监听端口
listen 80;
#域名设置多个可用空格隔开
server_name ******* *******;
#默认编码
charset UTF-8;
#默认文件
location / {
root /cn/com/zhangjiashao;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
#请求错误页面
location = /50x.html {
root html;
}
}
13.static.conf配置(二级虚拟主机)
#########静态资源配置#########
server {
listen 80;
server_name **********;
#默认文件
index index.html index.htm;
root /cn/com/zhangjiashao/filesystem;
#配置Nginx动静分离
location ~ .*.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$ {
#浏览器缓存15天
expires 15d;
}
#静态文件调试项目记得修改参数
location ~ .*.(js|css)?$ {
expires 1h;
}
}
15.vserver.conf配置(二级虚拟主机) 同上
NGINX开机启动
1、在系统服务目录里创建nginx.service文件
vi /usr/lib/systemd/system/nginx.service
2、写入内容如下:
# [Unit]:服务的说明
[Unit]
# Description:描述服务
Description=nginx
# After:描述服务类别
After=network.target
# [Service]服务运行参数的设置
[Service]
# Type=forking是后台运行的形式
Type=forking
# ExecStart为服务的具体运行命令
ExecStart=/usr/local/nginx/sbin/nginx
# ExecReload为重启命令
ExecReload=/usr/local/nginx/sbin/nginx -s reload
# ExecStop为停止命令
ExecStop=/usr/local/nginx/sbin/nginx -s quit
# PrivateTmp=True表示给服务分配独立的临时空间
PrivateTmp=true
# 注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
[Install]
WantedBy=multi-user.target
3、设置开机自启动
systemctl enable nginx.service
4、查看nginx状态
systemctl status nginx.service
很奇怪,明明启动成功了,为什么显示Active: inactive (dead)?
5、杀死nginx重启nginx
ps aux | grep nginx
pkill -9 nginx
6、启动nginx
systemctl start nginx
再次查看状态,变成了active,搞定。
7、重启服务器
reboot
8、再次连接后,查看服务状态
systemctl status nginx.service
看到nginx已经启动,至此,nginx自启动配置成功。