下载安装
1.依赖项和必要组件
代码语言:javascript复制yum install -y make cmake gcc gcc-c
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
2.下载安装nginx
代码语言:javascript复制wget http://nginx.org/download/nginx-1.20.2.tar.gz
可以根据需要下载不同版本。官网:http://nginx.org/en/download.html
3.解压
代码语言:javascript复制tar zxvf nginx-1.20.2.tar.gz && cd nginx-1.20.2
4.编译配置
代码语言:javascript复制./configure && make && make install
执行完命令将会在 /usr/local/nginx 生成相应的可执行文件、配置、默认站点等文件
5.软连接创建全局命令
代码语言:javascript复制ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
代码语言:javascript复制(执行第五步后不需要去安装目录,不需要./)
./nginx :启动
./nginx -s stop(此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程)
./nginx -s quit (此方式停止步骤是待nginx进程处理任务完毕进行停止。)
./nginx -s reload 重启
配置
1.配置文件启动
/usr/local/nginx/conf/nginx.conf配置端口等,更改location的root目录
.conf配置文件的启动 在实际当中服务器中可能有多个vue前端项目,此时我们只要单独修该conf文件即可,一个前端项目对应的一个conf文件。 conf启动命令符如下: 启动项目指定配置文件 #nginx -c /usr/local/nginx/conf/nginx_hwfm.conf 查看启动进程: #ps -ef|grep nginx_hwfm 别忘了开服务器端口
nginx.conf配置文件详解
2.配置代理
代码语言:javascript复制upstream my_server {
server 10.10.10.10:8080;
keepalive 2000;
}
server {
listen 80;
server_name 10.0.0.1;
client_max_body_size 1024M;
location /my/ {
proxy_pass http://my_server/abc/my/;
proxy_set_header Host $host:$server_port;
}
}
代码语言:javascript复制访问 http://10.10.10.10:8080/abc/my/.....
/my是唯一标识
配置linux 开机自启动
代码语言:javascript复制1.在/etc/init.d下创建文件nginx
vim /etc/init.d/nginx
其内容参考nginx官方文档
需要注意的配置:
nginx=”/usr/local/nginx/nginx/sbin/nginx” //修改成nginx执行程序的路径。
NGINX_CONF_FILE=”/usr/local/nginx/nginx/conf/nginx.conf” //修改成nginx.conf文件的路径。
# 保存后设置文件的执行权限
chmod a x /etc/init.d/nginx
# 至此就可以通过下面指令控制启动停止
/etc/init.d/nginx start
/etc/init.d/nginx stop
#上面的方法完成了用脚本管理nginx服务的功能,但是还是不太方便。
先将nginx服务加入chkconfig管理列表:
chkconfig --add /etc/init.d/nginx
# 加完这个之后,就可以使用service对nginx进行启动,重启等操作了。
service nginx start
service nginx stop
service nginx restart
# 最后设置开机自动启动
chkconfig nginx on
docker安装nginx
代码语言:javascript复制docker run -d -p 8080:80 --name eisp-web --network ads -v /var/lib/docker/volumes/nginx/eisp:/usr/share/nginx/html -v /var/lib/docker/volumes/nginx/conf/nginx.conf:/etc/nginx/nginx.conf nginx:latest
配置反向代理
mysql/tcp
代码语言:javascript复制# 默认编译时没有steam模块,编译时加上 --with-stream
./configure --with-stream && make && make install
# 较为完整的编译
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module --with-http_flv_module --with-http_mp4_module --with-http_gzip_static_module--with-stream --with-stream_ssl_module
配置steam,steam要和http平级
代码语言:javascript复制# nginx 代理 mysql,监听本机3307端口,代理到xxx.com:3306
stream {
# 设置代理超时时间,设的大一些,避免长连接因为超时时间而中断
proxy_timeout 3d;
server {
listen 3307;
listen [::]:3307;
proxy_pass xxx.com:3306;
}
}
代码语言:javascript复制# (方法2)nginx 代理 mysql,监听本机2188端口,代理到192.168.1.221:3306
stream {
upstream mysql {
zone myapp1 64k;
server 192.168.1.221:3306 weight=1 max_fails=2 fail_timeout=30s;
}
server {
listen 2188;
proxy_connect_timeout 1s;
proxy_timeout 3s;
proxy_pass mysql;
}
}
常用配置
代码语言:javascript复制# 隐藏版本号
配置文件增加 server_tokens off;
# 413 Request Entity Too Large Nginx 错误
client_max_body_size 20m;