阅读 238

Liunx下部署前端运行环境:Nginx的部署上线

一、GCC G++开发类库

开始前,请确认gcc g++开发类库是否装好,默认已经安装 ububtu平台编译环境可以使用以下指令

apt-get install build-essential apt-get install libtool 复制代码

centos平台编译环境使用如下指令 安装make:

yum -y install gcc automake autoconf libtool make 复制代码

安装g++:

yum install gcc gcc-c++ 复制代码

二、安装PCRE库

PCRE(Perl Compatible Regular Expressions)是一个轻量级的Perl函数库,包括 perl 兼容的正则表达式库。它比Boost之类的正则表达式库小得多。PCRE十分易用,同时功能也很强大,性能超过了POSIX正则表达式库和一些经典的正则表达式库。

  1. PCRE目前最新版本为8.43,可以在sourceforge.net/projects/pc… 这里进行下载。

没有安装wget,需要首先安装wget:

yum -y install wget 复制代码

wget https://nchc.dl.sourceforge.net/project/pcre/pcre/8.43/pcre-8.43.tar.gz 复制代码

  1. 使用tar -zxvf pcre-8.43.tar.gz进行解压。

  2. 运行chmod -R 777 pcre-8.43对当前文件夹授予全部读写权限。

  3. 切换到/pcre-8.43目录下,运行./configure进行pcre初始化配置,会在控制台打印出一大堆的输出信息。

  4. 执行make操作,进行编译。

[root@server06 pcre-8.43]# make rm -f pcre_chartables.c ln -s ./pcre_chartables.c.dist pcre_chartables.c make all-am make[1]: Entering directory /opt/nginx/pcre-8.43   CC      libpcre_la-pcre_byte_order.lo   CC      libpcre_la-pcre_compile.lo   CC      libpcre_la-pcre_config.lo   CC      libpcre_la-pcre_dfa_exec.lo   CC      libpcre_la-pcre_exec.lo   CC      libpcre_la-pcre_fullinfo.lo   CC      libpcre_la-pcre_get.lo   CC      libpcre_la-pcre_globals.lo   CC      libpcre_la-pcre_jit_compile.lo   CC      libpcre_la-pcre_maketables.lo   CC      libpcre_la-pcre_newline.lo   CC      libpcre_la-pcre_ord2utf8.lo   CC      libpcre_la-pcre_refcount.lo   CC      libpcre_la-pcre_string_utils.lo   CC      libpcre_la-pcre_study.lo   CC      libpcre_la-pcre_tables.lo   CC      libpcre_la-pcre_ucd.lo   CC      libpcre_la-pcre_valid_utf8.lo   CC      libpcre_la-pcre_version.lo   CC      libpcre_la-pcre_xclass.lo   CC      libpcre_la-pcre_chartables.lo   CCLD    libpcre.la   CC      libpcreposix_la-pcreposix.lo   CCLD    libpcreposix.la   CXX      libpcrecpp_la-pcrecpp.lo   CXX      libpcrecpp_la-pcre_scanner.lo   CXX      libpcrecpp_la-pcre_stringpiece.lo   CXXLD    libpcrecpp.la   CC      pcretest-pcretest.o   CC      pcretest-pcre_printint.o   CCLD    pcretest   CC      pcregrep-pcregrep.o   CCLD    pcregrep   CXX      pcrecpp_unittest-pcrecpp_unittest.o   CXXLD    pcrecpp_unittest   CXX      pcre_scanner_unittest-pcre_scanner_unittest.o   CXXLD    pcre_scanner_unittest   CXX      pcre_stringpiece_unittest-pcre_stringpiece_unittest.o   CXXLD    pcre_stringpiece_unittest make[1]: Leaving directory /opt/nginx/pcre-8.43 复制代码

  1. 运行 [root@server06 pcre-8.43]# make install,进行安装,至此PCRE安装完成。 

[root@server06 pcre-8.43]# make install 复制代码

三、安装zlib库

zlib.net/zlib-1.2.11… zlib 源码包,使用下面命令下载编译和安装 zlib包:(本文参照下载文件版本:zlib-1.2.8.tar.gz 经过验证未发现这个版本,若想下载最新版本请打开上面网址。本文选择zlib-1.2.11.tar.gz )

cd /usr/local/src wget http://zlib.net/zlib-1.2.11.tar.gz tar -zxvf zlib-1.2.11.tar.gz cd zlib-1.2.11 ./configure make make install 复制代码

四、安装openssl(某些vps默认没装ssl)

cd /usr/local/src wget https://www.openssl.org/source/openssl-1.0.2t.tar.gz tar -zxvf openssl-1.0.2t.tar.gz cd openssl-1.0.2t mkdir /usr/local/openssl ./config --prefix=/usr/local/openssl make make install 复制代码

五、安装nginx

Nginx 一般有两个版本,分别是稳定版和开发版,您可以根据您的目的来选择这两个版本的其中一个,下面是把 Nginx 安装到 /usr/local/nginx 目录下的详细步骤:

进入/usr/local的目录

wget http://nginx.org/download/nginx-1.20.1.tar.gz tar -zxvf nginx-1.20.1.tar.gz cd nginx-1.20.1 ./configure make install 复制代码

注:这里可能会出现报错

image.png ubuntu下:

apt-get install openssl apt-get install libssl-dev 复制代码

centos下:

yum -y install openssl openssl-devel 复制代码

六、Nginx常用命令

(一)、启动

启动代码格式:nginx安装目录地址 -c nginx配置文件地址 例如:

[root@LinuxServer sbin]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 复制代码

(二)、停止

 nginx的停止有三种方式:

从容停止

1、查看进程号
[root@LinuxServer ~]# ps -ef|grep nginx 复制代码

image.png

2、杀死进程
[root@LinuxServer ~]# kill -QUIT 2072 复制代码

image.png 快速停止

1、查看进程号
[root@LinuxServer ~]# ps -ef|grep nginx 复制代码

image.png

2、杀死进程
[root@LinuxServer ~]# kill -TERM 2132 或 [root@LinuxServer ~]# kill -INT 2132 复制代码

image.png

image.png

强制停止

[root@LinuxServer ~]# pkill -9 nginx 复制代码

(三)、重启

1、验证nginx配置文件是否正确

方法一:进入nginx安装目录sbin下,输入命令./nginx -t 看到如下显示:

nginx.conf syntax is ok nginx.conf test is successful 复制代码

说明配置文件正确!

image.png

方法二:在启动命令-c前加-t

image.png

2、重启Nginx服务

方法一:进入nginx可执行目录sbin下,输入命令./nginx -s reload 即可

image.png

方法二:查找当前nginx进程号,然后输入命令:kill -HUP 进程号 实现重启nginx服务

image.png

七、环境变量的配置

1:进入 vim /etc/profile 文件 image.png 2:添加配置 如下  创建添加一个 PATH(PATH 和windows上配置环境变量差不多) export 就是导入、启用的作用。

image.png

3:配置.bashrc文件,如下 这个时候,你只需要执行下面操作即可:

vim ~/.bashrc 复制代码

然后最后一行添加

source /etc/profile 复制代码

然后我们再来看看效果  ./nginx -s reload 发现没有出错

image.png

然后我就再次启动了 nginx  表示也成功了。

image.png

八、配置文件

nginx.conf配置文件:

worker_processes  auto; events {     worker_connections 102400;     accept_mutex on;     multi_accept on;     use epoll; } http {     log_format main '$remote_addr - $remote_user [$time_local] $request'       '$status $body_bytes_sent $http_referer'        '$http_user_agent $http_x_forwarded_for';     include  mime.types;     keepalive_timeout  65; limit_req_zone $binary_remote_addr zone=one:200m rate=2000r/s;     gzip on;    #gzip_static on;     gzip_min_length 1k;     gzip_buffers  4 16k;     gzip_http_version 1.0;     gzip_comp_level 6;     gzip_types  text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml; gzip_proxied expired no-cache no-store private auth;     server_tokens off;     sendfile on;     tcp_nopush on;     tcp_nodelay on;     access_log /var/log/nginx/access.log main;     error_log /var/log/nginx/error.log debug;     client_header_timeout 10;     client_body_timeout 10; client_max_body_size 200m;     reset_timedout_connection on;     send_timeout 10;     limit_conn_zone $binary_remote_addr zone=addr:5m;     limit_conn addr 100;     default_type text/html;     charset UTF-8;     open_file_cache max=100000 inactive=20s;     open_file_cache_valid 30s;     open_file_cache_min_uses 2;     open_file_cache_errors on;     include vhosts/*.conf; } 复制代码

vhosts下的配置:

server {     listen 80;     server_name 127.0.0.1;     location /      {         root   /home/www/jdz;         index  index.html index.htm;         try_files $uri $uri/ /index.html; proxy_set_header X-Real-IP $remote_addr; limit_req zone=one burst=5000 nodelay;     }     location /api/      {         proxy_pass http://192.168.0.85:8301/;         proxy_redirect default; proxy_set_header X-Real-IP $remote_addr; limit_req zone=one burst=5000 nodelay; } } 复制代码

https配置:

server {     listen 443 ssl;     server_name sincerity-group.greatedu.net.cn;     ssl_certificate /etc/ssl/4437701_sincerity-group.greatedu.net.cn.pem;     ssl_certificate_key /etc/ssl/4437701_sincerity-group.greatedu.net.cn.key;     ssl_protocols TLSv1 TLSv1.1 TLSv1.2;     ssl_session_timeout 10m;     ssl_session_cache shared:SSL:10m;     ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;     ssl_prefer_server_ciphers on;     location / {         root   /home/www/pc_trustcms;         index  index.html index.htm;         try_files $uri $uri/ /index.html; proxy_set_header X-Real-IP $remote_addr; limit_req zone=one burst=5000 nodelay;     }     location /api/     {         proxy_pass http://127.0.0.1:8888/;         proxy_redirect default; proxy_set_header X-Real-IP $remote_addr; limit_req zone=one burst=5000 nodelay;     } } server {     listen          80;     server_name     www.js7e.com;     rewrite ^(.*)$  https://$host$1 permanent; } 复制代码

九、项目打包

git clone http://192.168.0.205:8880/baosheng/jdzsoftware.git npm install npm start(为了确认项目是否能够正常运行) npm run build:pro npm run upload:pro 复制代码

十、设置nginx开机自启动

第一步:进入到/lib/systemd/system/目录

[root@iz2z init.d]# cd /lib/systemd/system/ 复制代码

第二步:创建nginx.service文件,并编辑

# vim nginx.service 复制代码

内如如下:

[Unit] Description=nginx service After=network.target      [Service]  Type=forking  ExecStart=/usr/local/nginx/sbin/nginx ExecReload=/usr/local/nginx/sbin/nginx -s reload ExecStop=/usr/local/nginx/sbin/nginx -s quit PrivateTmp=true      [Install]  WantedBy=multi-user.target 复制代码

Description:描述服务 After:描述服务类别 [Service]服务运行参数的设置 Type=forking是后台运行的形式 ExecStart为服务的具体运行命令 ExecReload为重启命令 ExecStop为停止命令 PrivateTmp=True表示给服务分配独立的临时空间 注意:[Service]的启动、重启、停止命令全部要求使用绝对路径 [Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3

保存退出。

第三步:加入开机自启动

systemctl enable nginx 复制代码

如果不想开机自启动了,可以使用下面的命令取消开机自启动

# systemctl disable nginx 复制代码

第四步:服务的启动/停止/刷新配置文件/查看状态

# systemctl start nginx.service          启动nginx服务  # systemctl stop nginx.service           停止服务  # systemctl restart nginx.service        重新启动服务  # systemctl list-units --type=service     查看所有已启动的服务  # systemctl status nginx.service          查看服务当前状态  # systemctl enable nginx.service          设置开机自启动  # systemctl disable nginx.service         停止开机自启动 复制代码

十一、常见问题

1、出现nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)?

可能是端口号被占用,切换到/usr/local/nginx/conf/目录下,更改nginx.conf下的端口号。也有可能是不小心nginx重启了多次,关闭nginx进程,重启即可。

关闭Nginx 使用 ps -ef|grep nginx 查看nginx的进程,可以看到nginx有两个进程:

[root@linuxidc sbin]# ps -ef|grep nginx  root      7276    1  0 14:21 ?        00:00:00 nginx: master process ./nginx www      7277  7276  0 14:21 ?        00:00:00 nginx: worker process root      7279  5197  0 14:21 pts/1    00:00:00 grep nginx 复制代码

快速停止nginx kill - QUIT nginx 主进程号

停止nginx所有进程

[root@linuxidc sbin]# pkill -9 nginx 复制代码

2、运行./configure进行初始化配置出错

运行./configure进行初始化配置。如出现下面的提示,说明该机器没有安装PCRE,而Nginx需要依赖PCRE,需要手动安装PCRE

image.png

在安装完PCRE后,再次运行./configure进行初始化即可。注意这里生成的配置文件,尤其箭头所指的方向,是启动nginx时的路径

image.png

3、杀死进程后重启,出现ginx: [error] invalid PID number "" in "/usr/local/nginx/logs/nginx.pid" 这个错误

使用/usr/local/nginx/sbin/nginx -s reload 重新读取配置文件出错:

[root@localhost nginx]/usr/local/nginx/sbin/nginx -s reload 复制代码

提示:

nginx: [error] invalid PID number "" in "/usr/local/nginx/logs/nginx.pid" [root@localhost nginx]# cd logs [root@localhost logs]# ls access.log  error.log  nginx-access.log  nginx_error.log 复制代码

果然没有/usr/local/nginx/logs/nginx.pid 文件

解决方法:

[root@localhost nginx]/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 复制代码

十二、离线安装GCC与GCC-C++

包下载地址:已测试可用

链接: pan.baidu.com/s/1j5-yzDbp… 密码: teta

image.png

把centos上传到linux服务器,进入centos目录

执行

rpm -Uvh *.rpm --nodeps --force 复制代码

安装成功,查看gcc版本和g++版本,会看到详细的版本信息,离线环境下安装GCC和GCC-C++就完成了。


作者:侠名风
链接:https://juejin.cn/post/7047800362501144613


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐