一、一键安装四个依赖
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
二、创建一个安装目录,并下载nginx安装包
cd /usr/local
mkdir nginx #创建目录名为nginx的文件夹
cd nginx
wget http://nginx.org/download/nginx-1.16.1.tar.gz #下载nginx安装包
三、安装nginx
cd /usr/local/nginx #进入nginx目录
tar zxvf nginx-1.16.1.tar.gz -C /usr/local/nginx #解压
cd /usr/local/nginx/nginx-1.16.1
./configure --prefix=/usr/local/nginx --conf-path=/usr/local/nginx/nginx.conf #执行命令
如果执行下面的命令时报: -bash: ./configure: Permission denied 错误,则执行:
bash ./configure --prefix=/usr/local/nginx --conf-path=/usr/local/nginx/nginx.conf
如果执行下面的命令时报: 找不到logs文件夹 错误,则在安装目录中创建 logs文件夹
make #执行make命令
make install #执行make install命令
四、检查及启动nginx
/usr/local/nginx/sbin/nginx -t #检查一下修改过的配置文件是否正确
cd /usr/local/nginx/sbin #进入安装目录
./nginx #启动nginx
如果启动没有报错,则启动成功。在浏览中输入服务器ip,如果能访问到nginx首页,则安装成功。有时可能还要关闭防火墙才能访问。
五、如果修改配置文件后要重启nginx服务
/usr/local/nginx/sbin/nginx -s reload #重启nginx
附:nginx 优化后的配置文件
#user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 102400;#number的值不能大于操作系统能打开的最大的文件句柄数 accept_mutex on;#优化同一时刻只有一个请求而避免多个睡眠进程被唤醒的设置,on为防止被同时唤醒,默认为off multi_accept on; #打开同时接受多个新网络连接请求的功能 use epoll; #使用epoll事件驱动,因为epoll的性能相比其他事件驱动要好很多 } http { server_tokens off; #隐藏ngxin版本号 include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; gzip on; #gzip_static on; gzip_disable "msie6"; #不使用gzip IE6 gzip_min_length 10k; #gzip压缩最小文件大小,超出进行压缩(自行调节) gzip_buffers 4 16k; #buffer 不用修改 gzip_comp_level 3; #压缩级别:1-10,数字越大压缩的越好,时间也越长 gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png; #压缩文件类型 gzip_vary off; #跟Squid等缓存服务有关,on的话会在Header里增加 "Vary: Accept-Encoding" server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { add_header Cache-Control "no-cache, no-store"; root /data/xyweb/;# index index.html index.htm; expires -1; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ .php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ .php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; #} # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /.ht { # deny all; #} } server { listen 8089;# server_name localhost; location / { root /data/xyweb/machine; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } server { listen 8088;# server_name localhost; location / { root /data/xyweb/rzweb; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } server { listen 8086;# server_name localhost; location / { root /data/xyFiles; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } server { listen 80;# server_name pay.xynetweb.com; location / { proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://195.6.71.888:8090/service-pay/pay/; } } server { listen 80;# server_name paytest.xynetweb.com; location / { proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://195.6.4.448:6017/service-pay/pay/; } location /api/pay/jft/ { proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://195.6.4.448:6017/service-pay-wx/pay/api/jft/; } } # another virtual host using mix of IP-, name-, and port-based configuration # #server { # listen 8000; # listen somename:8080; # server_name somename alias another.alias; # location / { # root html; # index index.html index.htm; # } #} # HTTPS server # #server { # listen 443 ssl; # server_name localhost; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 5m; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # location / { # root html; # index index.html index.htm; # } #} }
六、开启nginx的tcp功能
1、安装功能模块
cd /usr/local/nginx/nginx-1.16.1
./configure --with-stream=dynamic
2、运行mak(此处一定不能使用make install命令,执行该命令会将原有nginx目录进行覆盖)
3、复制文件(复制前关闭nginx)
cp
.
/objs/nginx
/usr/local/nginx/sbin/nginx
4、修改配置文件
load_module modules/ngx_stream_module.so; user nobody; worker_processes auto; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { use epoll; worker_connections 1024; } stream { server { listen 8088; proxy_pass 192.168.1.1:8088; } }
5、重启nginx,配置成功