Nginx在Ubuntu Server下安装和设置详解
2016-06-11 00:00
731 查看
一 安装nginx
sudo apt-get install nginx
sudo service lighttpd stop 停止lighttpd
sudo rcconf 去掉lighttpd开机自启动
二 nginx的配置:
设置nginx系统全局配置
sudo vim /etc/nginx/nginx.conf
在nginx.conf写入如下配置:
user www-data;
worker_processes 2; #设置占用CPU进程数
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
#diy1
worker_rlimit_nofile 51200; #设置访问nginx最大连接数
events {
use epoll; #设置访问模式
worker_connections 51200; #设置访问最大连接数
# multi_accept on;
}
http {
include /etc/nginx/mime.types;
#设置fastcgi相关参数:连接,发送,读取时间以及缓存大小等
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
#设置文件压缩相关参数
gzip on;
}
单个web网站配置
sudo vim /etc/nginx/sites-available/default
在default中写入如下配置:
server {
listen 2080; #设置网站访问端口号
server_name a.a; #设置访问网站域名或者ip
}
在/etc/nginx/sites-enable/目录下设置单个web网站配置文件的软连接
sudo ln -s 配置文件名称 /etc/nginx/sites-available/配置文件名称
负载均衡控制服务器上的nginx设置
在负载均衡控制服务器上/etc/nginx/sites-available/目录下新建nginxctrl文件
在nginxctrl写入如下配置:
#设置负载机器IP以及负载权重
upstream bk{
ip_hash;
server 192.168.2.201:2080 weight=10;
server 192.168.2.202:2080 weight=10;
}#设置需要负载的网站ip或者域名
server {
listen 80;
server_name a.a;
location /{
proxy_pass http://bk;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
在/etc/nginx/sites-enable/目录下设置nginxctrl软连接
sudo ln -s nginxctrl /etc/nginx/sites-available/nginxctrl
启动fastcgi php:
sudo spawn-fcgi -a 127.0.0.1 -p 9000 -C 10 -u www-data -g www-data -f /usr/bin/php-cgi
设置php-cgi开机自启动:
sudo vim /etc/init.d/nginx
找到在相应位置插入如下语句:
start)
spawn-fcgi -a 127.0.0.1 -p 9000 -C 10 -u www-data -g www-data -f /usr/bin/php-cgi
echo "$NAME."
stop)
echo -n "Stopping $DESC: "
pkill -9 php-cgi
echo "$NAME."
重新启动nginx:
sudo service nginx stop
sudo service nginx start
关闭php-cgi日志
sudo vim /etc/php5/cgi/php.ini
找到下面一行
display_errors = On
更改为
display_errors = Off
保存重启php-cgi
pkill -9 php-cgi
sudo spawn-fcgi -a 127.0.0.1 -p 9000 -C 10 -u www-data -g www-data -f /usr/bin/php-cgi
nginxURL重写
重定向 rewrite ^/(.*)$ http:// permanent;
sudo apt-get install nginx
sudo service lighttpd stop 停止lighttpd
sudo rcconf 去掉lighttpd开机自启动
二 nginx的配置:
设置nginx系统全局配置
sudo vim /etc/nginx/nginx.conf
在nginx.conf写入如下配置:
user www-data;
worker_processes 2; #设置占用CPU进程数
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
#diy1
worker_rlimit_nofile 51200; #设置访问nginx最大连接数
events {
use epoll; #设置访问模式
worker_connections 51200; #设置访问最大连接数
# multi_accept on;
}
http {
include /etc/nginx/mime.types;
access_log /var/log/nginx/access.log; sendfile on; tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; tcp_nodelay on;
#设置fastcgi相关参数:连接,发送,读取时间以及缓存大小等
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
#设置文件压缩相关参数
gzip on;
gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.1; gzip_comp_level 2; gzip_types text/plain application/x-javascript text/css application/xml; gzip_vary on; gzip_disable "MSIE [1-6]\.(?!.*SV1)"; include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*;
}
单个web网站配置
sudo vim /etc/nginx/sites-available/default
在default中写入如下配置:
server {
listen 2080; #设置网站访问端口号
server_name a.a; #设置访问网站域名或者ip
access_log /var/log/nginx/localhost.access.log; location / { root /var/www/nginx-default; #设置网站根目录路径 index index.php index.html index.htm; #设置首页文件类型 } #启用fastcgi并设置相关参数 location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/nginx-default$fastcgi_script_name; #设置网站脚本目录路径 include fastcgi_params; fastcgi_param DOCUMENT_ROOT "网站根目录路径"; #设置网站文档目录路径 } #关闭一些多余文件日志 location ~ .*\.(js|jpg|JPG|jpeg|JPEG|css|bmp|gif|GIF)$ { root /var/www/nginx-default; access_log off; }
}
在/etc/nginx/sites-enable/目录下设置单个web网站配置文件的软连接
sudo ln -s 配置文件名称 /etc/nginx/sites-available/配置文件名称
负载均衡控制服务器上的nginx设置
在负载均衡控制服务器上/etc/nginx/sites-available/目录下新建nginxctrl文件
在nginxctrl写入如下配置:
#设置负载机器IP以及负载权重
upstream bk{
ip_hash;
server 192.168.2.201:2080 weight=10;
server 192.168.2.202:2080 weight=10;
}#设置需要负载的网站ip或者域名
server {
listen 80;
server_name a.a;
location /{
proxy_pass http://bk;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
在/etc/nginx/sites-enable/目录下设置nginxctrl软连接
sudo ln -s nginxctrl /etc/nginx/sites-available/nginxctrl
启动fastcgi php:
sudo spawn-fcgi -a 127.0.0.1 -p 9000 -C 10 -u www-data -g www-data -f /usr/bin/php-cgi
设置php-cgi开机自启动:
sudo vim /etc/init.d/nginx
找到在相应位置插入如下语句:
start)
spawn-fcgi -a 127.0.0.1 -p 9000 -C 10 -u www-data -g www-data -f /usr/bin/php-cgi
echo "$NAME."
stop)
echo -n "Stopping $DESC: "
pkill -9 php-cgi
echo "$NAME."
重新启动nginx:
sudo service nginx stop
sudo service nginx start
关闭php-cgi日志
sudo vim /etc/php5/cgi/php.ini
找到下面一行
display_errors = On
更改为
display_errors = Off
保存重启php-cgi
pkill -9 php-cgi
sudo spawn-fcgi -a 127.0.0.1 -p 9000 -C 10 -u www-data -g www-data -f /usr/bin/php-cgi
nginxURL重写
#设置跳转标志
set $urlgo '0';
#设置例外标志
set $urlgo2 '';
#根据端口设置标志
if ($server_port ~ ^(80)$) {
set $tmp '1';
}170
if ($server_port ~ ^(443)$) {
set $tmp '2';
}#设置需要强跳到443的标志位
if ($request_filename ~* .*(test.php|login.php|modifypass.php|pay.php|reg.php|pay_bank.php|pay_mobile.php|usercode.php)$ ) {
set $urlgo '1';
}#例外文件
if ($request_filename ~* .*\.(js|jpg|jpeg|css|bmp|gif|png)$ ) {
set $urlgo2 '1';
}#例外文件
if ($request_filename ~* .*(code_new|ajax)\.php$ ) {
set $urlgo2 '1';
}
set $tmp $tmp$urlgo$urlgo2;
#需要转到443
if ($tmp ~ ^(11)$){
set $X-Test $tmp;
rewrite ^/(.*)$ https://$http_host/$1 permanent;
}#需要转到80
if ($tmp ~ ^(20)$){
set $X-Test $tmp;
rewrite ^/(.*)$ http://$http_host/$1 permanent;
}
重定向 rewrite ^/(.*)$ http:// permanent;
相关文章推荐
- Ubuntu 默认壁纸历代记
- Ubuntu Remix Cinnamon 20.04 评测:Ubuntu 与 Cinnamon 的完美融合
- 关于Ubuntu 11.10启动提示waiting for the network configuration的问题
- 在 Ubuntu 桌面中使用文件和文件夹
- nginx代理指定目录
- ubuntu下chrome无法同步问题解决
- 访问Nginx发生SSL connection error的一种情况
- Ubuntu Linux使用体验
- 使用 GNOME 优化工具自定义 Linux 桌面的 10 种方法
- 以Ubuntu 9.04为例 将工作环境迁移到 Linux
- Nginx+Naxsi部署专业级Web应用防火墙
- VirtualBox虚拟机XP与宿主机Ubuntu互访共享文件夹
- Seafile Server本地权限提升漏洞(CVE-2014-5443)
- 从USB安装Ubuntu Server 10.04.3 图文详解
- Ubuntu 15.04 正式版发布下载
- Linux-Ubuntu 10.04安装Cadence-ic610 方法总结图解
- CentOS 6.2实战部署Nginx+MySQL+PHP
- Ubuntu 12.04和Windows 7双系统安装图解
- Ubuntu /home下中文目录如何修改成英文?